1+ /*
2+ * Copyright © 2022, 2023, Oracle and/or its affiliates.
3+ * Licensed under the Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/
4+ */
5+
6+ import { OFSCredentials } from "../../src/model" ;
7+ import { OFS } from "../../src/OFS" ;
8+ import myCredentials from "../credentials_test.json" ;
9+
10+ var myProxy : OFS ;
11+
12+ // Setup info
13+ beforeAll ( ( ) => {
14+ myProxy = new OFS ( myCredentials ) ;
15+ if ( "instance" in myCredentials ) {
16+ expect ( myProxy . instance ) . toBe ( myCredentials . instance ) ;
17+ } else {
18+ expect ( myProxy . baseURL ) . toBe ( myProxy . baseURL ) ;
19+ }
20+ } ) ;
21+
22+ test ( "Get Resource Routes with default activity fields" , async ( ) => {
23+ var resourceId = "100000471803411" ;
24+ var date = "2025-06-23" ;
25+ var result = await myProxy . getResourceRoutes ( resourceId , date ) ;
26+
27+
28+ // Test the method call itself works (doesn't throw)
29+ expect ( result ) . toBeDefined ( ) ;
30+ expect ( result . status ) . toBeDefined ( ) ;
31+ expect ( result . data ) . toBeDefined ( ) ;
32+
33+ // If successful, check the response structure
34+ if ( result . status === 200 && result . data ) {
35+ // The actual structure may vary, so we test what we can
36+ if ( result . data . resourceId ) {
37+ expect ( result . data . resourceId ) . toBe ( resourceId ) ;
38+ }
39+ if ( result . data . date ) {
40+ expect ( result . data . date ) . toBe ( date ) ;
41+ }
42+ if ( result . data . activities ) {
43+ expect ( Array . isArray ( result . data . activities ) ) . toBe ( true ) ;
44+ }
45+ }
46+ } ) ;
47+
48+ test ( "Get Resource Routes with specific activity fields" , async ( ) => {
49+ var resourceId = "100000471803411" ;
50+ var date = "2025-06-23" ;
51+ var activityFields = [ "latitude" , "longitude" , "status" ] ;
52+ var result = await myProxy . getResourceRoutes ( resourceId , date , activityFields ) ;
53+
54+ // Test the method call works with parameters
55+ expect ( result ) . toBeDefined ( ) ;
56+ expect ( result . status ) . toBeDefined ( ) ;
57+ expect ( result . data ) . toBeDefined ( ) ;
58+
59+ // If successful, check the response structure
60+ if ( result . status === 200 && result . data ) {
61+ if ( result . data . resourceId ) {
62+ expect ( result . data . resourceId ) . toBe ( resourceId ) ;
63+ }
64+ if ( result . data . date ) {
65+ expect ( result . data . date ) . toBe ( date ) ;
66+ }
67+ if ( result . data . activities ) {
68+ expect ( Array . isArray ( result . data . activities ) ) . toBe ( true ) ;
69+
70+ // Check if activities contain the requested fields
71+ if ( result . data . activities . length > 0 ) {
72+ var activity = result . data . activities [ 0 ] ;
73+ expect ( activity . activityId ) . toBeDefined ( ) ;
74+ // Note: latitude, longitude, status might not be present if not available for the activity
75+ }
76+ }
77+ }
78+ } ) ;
79+
80+ test ( "Get Resource Routes with multiple activity fields" , async ( ) => {
81+ var resourceId = "100000471803411" ;
82+ var date = "2025-06-23" ;
83+ var activityFields = [ "latitude" , "longitude" , "status" , "activityType" , "customerName" ] ;
84+ var result = await myProxy . getResourceRoutes ( resourceId , date , activityFields ) ;
85+
86+ if ( result . status !== 200 ) {
87+ console . log ( "Get Resource Routes with multiple fields ERROR:" , result ) ;
88+ }
89+
90+ expect ( result . status ) . toBe ( 200 ) ;
91+ expect ( result . data ) . toBeDefined ( ) ;
92+ } ) ;
93+
94+ test ( "Get Resource Routes with invalid resource ID" , async ( ) => {
95+ var resourceId = "INVALID_RESOURCE_ID" ;
96+ var date = "2025-06-23" ;
97+ var result = await myProxy . getResourceRoutes ( resourceId , date ) ;
98+
99+ // Expecting 404 or similar error status for invalid resource ID
100+ expect ( result . status ) . toBeGreaterThanOrEqual ( 400 ) ;
101+ expect ( result . status ) . toBeLessThan ( 500 ) ;
102+ } ) ;
103+
104+ test ( "Get Resource Routes with invalid date format" , async ( ) => {
105+ var resourceId = "100000471803411" ;
106+ var date = "invalid-date" ;
107+ var result = await myProxy . getResourceRoutes ( resourceId , date ) ;
108+
109+ // Expecting 400 or similar error status for invalid date format
110+ expect ( result . status ) . toBeGreaterThanOrEqual ( 400 ) ;
111+ expect ( result . status ) . toBeLessThan ( 500 ) ;
112+ } ) ;
113+
114+ test ( "Get Resource Routes with future date" , async ( ) => {
115+ var resourceId = "100000471803411" ;
116+ var date = "2025-12-31" ;
117+ var result = await myProxy . getResourceRoutes ( resourceId , date ) ;
118+
119+ // Future dates might return 200 with empty data or an error
120+ expect ( result . status ) . toBeLessThan ( 500 ) ;
121+ expect ( result . data ) . toBeDefined ( ) ;
122+ } ) ;
123+
124+ test ( "Get Resource Routes with past date" , async ( ) => {
125+ var resourceId = "100000471803411" ;
126+ var date = "2024-01-01" ;
127+ var result = await myProxy . getResourceRoutes ( resourceId , date ) ;
128+
129+ // Past dates should work if data exists
130+ expect ( result . status ) . toBeLessThan ( 500 ) ;
131+ expect ( result . data ) . toBeDefined ( ) ;
132+ } ) ;
133+
134+ test ( "Get Resource Routes with empty activity fields array" , async ( ) => {
135+ var resourceId = "100000471803411" ;
136+ var date = "2025-06-23" ;
137+ var activityFields : string [ ] = [ ] ;
138+ var result = await myProxy . getResourceRoutes ( resourceId , date , activityFields ) ;
139+
140+ if ( result . status !== 200 ) {
141+ console . log ( "Get Resource Routes with empty fields ERROR:" , result ) ;
142+ }
143+
144+ expect ( result . status ) . toBe ( 200 ) ;
145+ expect ( result . data ) . toBeDefined ( ) ;
146+ } ) ;
147+
148+ test ( "Get Resource Routes response structure validation" , async ( ) => {
149+ var resourceId = "100000471803411" ;
150+ var date = "2025-06-23" ;
151+ var result = await myProxy . getResourceRoutes ( resourceId , date ) ;
152+
153+ // Basic validation - method should return a proper response object
154+ expect ( result ) . toBeDefined ( ) ;
155+ expect ( result . status ) . toBeDefined ( ) ;
156+ expect ( typeof result . status ) . toBe ( 'number' ) ;
157+ expect ( result . data ) . toBeDefined ( ) ;
158+
159+ if ( result . status === 200 ) {
160+ // Validate response structure if successful
161+ if ( result . data . resourceId ) {
162+ expect ( result . data . resourceId ) . toBeDefined ( ) ;
163+ }
164+ if ( result . data . date ) {
165+ expect ( result . data . date ) . toBeDefined ( ) ;
166+ }
167+ if ( result . data . activities ) {
168+ expect ( Array . isArray ( result . data . activities ) ) . toBe ( true ) ;
169+
170+ // If there are activities, validate their structure
171+ if ( result . data . activities . length > 0 ) {
172+ var activity = result . data . activities [ 0 ] ;
173+ expect ( activity . activityId ) . toBeDefined ( ) ;
174+ expect ( typeof activity . activityId ) . toBe ( 'number' ) ;
175+ }
176+ }
177+ }
178+ } ) ;
0 commit comments