Skip to content

Commit 0fbde7a

Browse files
intel352claude
andcommitted
fix: validation fixes for scenarios 51-53
- Scenario 51 (Twilio): Fixed mock date format to RFC3339, fixed credentials to pass Twilio SDK alphanumeric validation - Scenario 52 (Monday): Fixed baseUrl config key, added /v2 to mock base URL, fixed items_page response structure, added request_parse steps for query params in list pipelines - Updated .gitignore to exclude runtime artifacts (plugin binaries, mock binaries, SQLite DBs) All scenarios validated: 51(17/17), 52(15/15), 53(15/15) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 115b03b commit 0fbde7a

5 files changed

Lines changed: 52 additions & 22 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@ scenarios/*/ui/dist/
77
/cmd/sample-orders/sample-orders
88
dist/
99
.worktrees/
10+
11+
# Scenario runtime artifacts
12+
scenarios/*/plugins/
13+
scenarios/*/mock/mock-*
14+
scenarios/*/*.db
15+
sample-orders

scenarios/51-twilio-integration/config/app.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ modules:
3131
- name: twilio
3232
type: twilio.provider
3333
config:
34-
accountSid: "AC_test_account"
35-
authToken: "test_auth_token"
34+
accountSid: "ACtest0123456789abcdef0123456789"
35+
authToken: "abcdef0123456789abcdef0123456789"
3636
baseURL: "http://localhost:19051"
3737

3838
workflows:

scenarios/51-twilio-integration/mock/main.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func handleSendMessage(w http.ResponseWriter, r *http.Request) {
100100
"to": to,
101101
"from": from,
102102
"body": body,
103-
"date_created": time.Now().UTC().Format(time.RFC1123Z),
103+
"date_created": time.Now().UTC().Format(time.RFC3339),
104104
"direction": "outbound-api",
105105
"price": nil,
106106
}
@@ -150,7 +150,7 @@ func handleFetchMessage(w http.ResponseWriter, r *http.Request, msgSid string) {
150150
"to": "+15005550001",
151151
"from": "+15005550006",
152152
"body": "Fetched message body",
153-
"date_created": time.Now().UTC().Format(time.RFC1123Z),
153+
"date_created": time.Now().UTC().Format(time.RFC3339),
154154
"direction": "outbound-api",
155155
"num_media": "0",
156156
})
@@ -169,7 +169,7 @@ func handleCreateCall(w http.ResponseWriter, r *http.Request) {
169169
"to": to,
170170
"from": from,
171171
"direction": "outbound-api",
172-
"date_created": time.Now().UTC().Format(time.RFC1123Z),
172+
"date_created": time.Now().UTC().Format(time.RFC3339),
173173
"duration": "0",
174174
})
175175
}
@@ -240,7 +240,7 @@ func handleSendVerification(w http.ResponseWriter, r *http.Request, serviceSid s
240240
"to": to,
241241
"channel": channel,
242242
"status": "pending",
243-
"date_created": time.Now().UTC().Format(time.RFC1123Z),
243+
"date_created": time.Now().UTC().Format(time.RFC3339),
244244
})
245245
}
246246

@@ -254,7 +254,7 @@ func handleCheckVerification(w http.ResponseWriter, r *http.Request, serviceSid
254254
"channel": "sms",
255255
"status": "approved",
256256
"valid": true,
257-
"date_created": time.Now().UTC().Format(time.RFC1123Z),
257+
"date_created": time.Now().UTC().Format(time.RFC3339),
258258
})
259259
}
260260

@@ -266,7 +266,7 @@ func handleAddPhoneNumber(w http.ResponseWriter, r *http.Request, serviceSid str
266266
"service_sid": serviceSid,
267267
"phone_number": phone,
268268
"country_code": "US",
269-
"date_created": time.Now().UTC().Format(time.RFC1123Z),
269+
"date_created": time.Now().UTC().Format(time.RFC3339),
270270
})
271271
}
272272

scenarios/52-monday-integration/config/app.yaml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ modules:
2929
config:
3030
apiToken: "test_api_token"
3131
apiVersion: "2026-04"
32-
baseURL: "http://localhost:19052"
32+
baseUrl: "http://localhost:19052/v2"
3333

3434
workflows:
3535
http:
@@ -157,11 +157,21 @@ pipelines:
157157
path: /api/v1/monday/items
158158
method: GET
159159
steps:
160+
- name: parse_request
161+
type: step.request_parse
162+
config:
163+
query_params:
164+
- board_id
165+
- name: prep
166+
type: step.set
167+
config:
168+
values:
169+
board_id: "{{ default \"1234567890\" (index .steps \"parse_request\" \"query\" \"board_id\") }}"
160170
- name: list_items
161171
type: step.monday_list_items
162172
config:
163173
module: monday
164-
board_id: "{{ default \"1234567890\" .query.board_id }}"
174+
board_id: "{{ index .steps \"prep\" \"board_id\" }}"
165175
limit: 10
166176
- name: respond
167177
type: step.json_response
@@ -214,11 +224,21 @@ pipelines:
214224
path: /api/v1/monday/groups
215225
method: GET
216226
steps:
227+
- name: parse_request
228+
type: step.request_parse
229+
config:
230+
query_params:
231+
- board_id
232+
- name: prep
233+
type: step.set
234+
config:
235+
values:
236+
board_id: "{{ default \"1234567890\" (index .steps \"parse_request\" \"query\" \"board_id\") }}"
217237
- name: list_groups
218238
type: step.monday_list_groups
219239
config:
220240
module: monday
221-
board_id: "{{ default \"1234567890\" .query.board_id }}"
241+
board_id: "{{ index .steps \"prep\" \"board_id\" }}"
222242
- name: respond
223243
type: step.json_response
224244
config:

scenarios/52-monday-integration/mock/main.go

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,23 @@ func handler(w http.ResponseWriter, r *http.Request) {
7878
},
7979
},
8080
}
81-
case strings.Contains(q, "items_page_by_column_values") || strings.Contains(q, "items_page"):
81+
case strings.Contains(q, "items_page"):
8282
resp = map[string]interface{}{
8383
"data": map[string]interface{}{
84-
"items_page_by_column_values": map[string]interface{}{
85-
"cursor": nil,
86-
"items": []interface{}{
87-
map[string]interface{}{
88-
"id": "9876543210",
89-
"name": "Sample Item 1",
90-
},
91-
map[string]interface{}{
92-
"id": "9876543211",
93-
"name": "Sample Item 2",
84+
"boards": []interface{}{
85+
map[string]interface{}{
86+
"items_page": map[string]interface{}{
87+
"cursor": nil,
88+
"items": []interface{}{
89+
map[string]interface{}{
90+
"id": "9876543210",
91+
"name": "Sample Item 1",
92+
},
93+
map[string]interface{}{
94+
"id": "9876543211",
95+
"name": "Sample Item 2",
96+
},
97+
},
9498
},
9599
},
96100
},

0 commit comments

Comments
 (0)