Skip to content

방어 로직 및 경계값 수정으로 전체 테스트 복구 - #1

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
fix/ai-verified-patch-1785236989603
Open

방어 로직 및 경계값 수정으로 전체 테스트 복구#1
github-actions[bot] wants to merge 1 commit into
mainfrom
fix/ai-verified-patch-1785236989603

Conversation

@github-actions

Copy link
Copy Markdown

이 PR은 테스트 실패의 공통 원인인 방어 로직 부족과 경계값 버그를 전면 수정합니다. API 라우터는 ValidationError를 400으로 응답하고, 인증 로직은 exp 판정을 올바르게 반전하며, 데이터 처리기는 Promise 기반으로 순차/병렬 완료를 보장합니다. 또한 결제 계산의 기준값 비교와 티어 인덱스 범위 처리를 보완하고, 사용자 서비스는 안전한 optional access와 유효성 검사를 적용합니다.


🔍 원본 에러 로그 및 발생 Context 보기
=== File: 0_Run Automated Test Suite.txt ===
2026-07-28T11:08:08.0550086Z Current runner version: '2.336.0'
2026-07-28T11:08:08.0574032Z ##[group]Runner Image Provisioner
2026-07-28T11:08:08.0575091Z Hosted Compute Agent
2026-07-28T11:08:08.0575634Z Version: 20260707.563
2026-07-28T11:08:08.0576262Z Commit: 02667638d2b423fbc733a8e32a88b44996a3ba6e
2026-07-28T11:08:08.0576939Z Build Date: 2026-07-07T19:33:50Z
2026-07-28T11:08:08.0577572Z Worker ID: {d665175c-2e94-4eff-a60c-18fa73d4d44f}
2026-07-28T11:08:08.0578254Z Azure Region: northcentralus
2026-07-28T11:08:08.0578817Z ##[endgroup]
2026-07-28T11:08:08.0580247Z ##[group]Operating System
2026-07-28T11:08:08.0581097Z Ubuntu
2026-07-28T11:08:08.0581599Z 24.04.4
2026-07-28T11:08:08.0582079Z LTS
2026-07-28T11:08:08.0582563Z ##[endgroup]
2026-07-28T11:08:08.0583089Z ##[group]Runner Image
2026-07-28T11:08:08.0583658Z Image: ubuntu-24.04
2026-07-28T11:08:08.0584176Z Version: 20260720.247.2
2026-07-28T11:08:08.0585378Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260720.247/images/ubuntu/Ubuntu2404-Readme.md
2026-07-28T11:08:08.0586781Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260720.247
2026-07-28T11:08:08.0587662Z ##[endgroup]
2026-07-28T11:08:08.0590470Z ##[group]GITHUB_TOKEN Permissions
2026-07-28T11:08:08.0593154Z Actions: write
2026-07-28T11:08:08.0593713Z ArtifactMetadata: write
2026-07-28T11:08:08.0594332Z Attestations: write
2026-07-28T11:08:08.0594933Z Checks: write
2026-07-28T11:08:08.0595443Z CodeQuality: write
2026-07-28T11:08:08.0595960Z Contents: write
2026-07-28T11:08:08.0596487Z CopilotRequests: write
2026-07-28T11:08:08.0597047Z Deployments: write
2026-07-28T11:08:08.0597588Z Discussions: write
2026-07-28T11:08:08.0598094Z Drives: write
2026-07-28T11:08:08.0598566Z Issues: write
2026-07-28T11:08:08.0599085Z Metadata: read
2026-07-28T11:08:08.0599681Z Models: read
2026-07-28T11:08:08.0600171Z Packages: write
2026-07-28T11:08:08.0600677Z Pages: write
2026-07-28T11:08:08.0601692Z PullRequests: write
2026-07-28T11:08:08.0602246Z RepositoryProjects: write
2026-07-28T11:08:08.0602818Z SecurityEvents: write
2026-07-28T11:08:08.0603368Z Statuses: write
2026-07-28T11:08:08.0603874Z VulnerabilityAlerts: read
2026-07-28T11:08:08.0604420Z ##[endgroup]
2026-07-28T11:08:08.0606569Z Secret source: Actions
2026-07-28T11:08:08.0607750Z Prepare workflow directory
... [System Alert: Truncated - 923 lines omitted] ...
... [Normal logs omitted to fit AI context limit] ...

--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.4699673Z 
2026-07-28T11:08:14.4705219Z > llm-self-healing-testbed@1.0.0 test
2026-07-28T11:08:14.4706036Z > node --test tests/*.test.js
2026-07-28T11:08:14.4706254Z 
2026-07-28T11:08:14.5121797Z TAP version 13
2026-07-28T11:08:14.5579151Z # Subtest: Scenario 5: API Router & Error Handler
2026-07-28T11:08:14.5602568Z     # Subtest: should return 200 OK for valid request payload
2026-07-28T11:08:14.5604264Z     ok 1 - should return 200 OK for valid request payload
2026-07-28T11:08:14.5605453Z       ---
2026-07-28T11:08:14.5606214Z       duration_ms: 1.095327
2026-07-28T11:08:14.5606907Z       ...
2026-07-28T11:08:14.5607994Z     # Subtest: should return 400 Bad Request when email is missing without throwing unhandled exception
2026-07-28T11:08:14.5632728Z     not ok 2 - should return 400 Bad Request when email is missing without throwing unhandled exception
2026-07-28T11:08:14.5633928Z       ---
2026-07-28T11:08:14.5634410Z       duration_ms: 1.103566
2026-07-28T11:08:14.5635412Z       location: '/home/runner/work/test-field/test-field/tests/apiRouter.test.js:14:3'
2026-07-28T11:08:14.5636380Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5636906Z       error: |-
2026-07-28T11:08:14.5637505Z         Got unwanted exception.
2026-07-28T11:08:14.5638281Z         Actual message: "Cannot read properties of undefined (reading 'map')"
2026-07-28T11:08:14.5639026Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5640015Z       name: 'AssertionError'
2026-07-28T11:08:14.5640494Z       actual:
2026-07-28T11:08:14.5641377Z       error: "Cannot read properties of undefined (reading 'map')"
2026-07-28T11:08:14.5642163Z       name: 'TypeError'
2026-07-28T11:08:14.5642600Z       stack: |-
2026-07-28T11:08:14.5643487Z         handleApiRequest (file:///home/runner/work/test-field/test-field/src/modules/apiRouter.js:27:41)
2026-07-28T11:08:14.5644501Z         file:///home/runner/work/test-field/test-field/tests/apiRouter.test.js:18:19
2026-07-28T11:08:14.5645315Z         getActual (node:assert:498:5)
2026-07-28T11:08:14.5645960Z         Function.doesNotThrow (node:assert:664:32)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5663793Z     not ok 3 - should return 400 Bad Request when user is underage
2026-07-28T11:08:14.5664454Z       ---
2026-07-28T11:08:14.5664908Z       duration_ms: 0.238655
2026-07-28T11:08:14.5665605Z       location: '/home/runner/work/test-field/test-field/tests/apiRouter.test.js:25:3'
2026-07-28T11:08:14.5666475Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5667154Z       error: "Cannot read properties of undefined (reading 'map')"
2026-07-28T11:08:14.5667791Z       code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5668232Z       name: 'TypeError'
2026-07-28T11:08:14.5668885Z       stack: |-
2026-07-28T11:08:14.5669833Z         handleApiRequest (file:///home/runner/work/test-field/test-field/src/modules/apiRouter.js:27:41)
2026-07-28T11:08:14.5671270Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/apiRouter.test.js:28:17)
2026-07-28T11:08:14.5672332Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.5672841Z         Test.run (node:internal/test_runner/test:796:25)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5673950Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.5674436Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.5674975Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.5675483Z       ...
2026-07-28T11:08:14.5675781Z     1..3
2026-07-28T11:08:14.5676163Z not ok 1 - Scenario 5: API Router & Error Handler
2026-07-28T11:08:14.5676532Z   ---
2026-07-28T11:08:14.5676907Z   duration_ms: 4.173842
2026-07-28T11:08:14.5677283Z   type: 'suite'
2026-07-28T11:08:14.5677932Z   location: '/home/runner/work/test-field/test-field/tests/apiRouter.test.js:5:1'
2026-07-28T11:08:14.5678417Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.5678767Z   error: '2 subtests failed'
2026-07-28T11:08:14.5679119Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5679425Z   ...
2026-07-28T11:08:14.5753991Z # Subtest: Scenario 4: Auth Middleware Permissions
2026-07-28T11:08:14.5783300Z     # Subtest: should return false (not expired) for token with exp in the future
2026-07-28T11:08:14.5791616Z     not ok 1 - should return false (not expired) for token with exp in the future
2026-07-28T11:08:14.5792927Z       ---
2026-07-28T11:08:14.5793579Z       duration_ms: 1.810183
2026-07-28T11:08:14.5794663Z       location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:6:3'
2026-07-28T11:08:14.5795813Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5796505Z       error: |-
2026-07-28T11:08:14.5797219Z         Future token should NOT be expired
2026-07-28T11:08:14.5797890Z         
2026-07-28T11:08:14.5798409Z         true !== false
2026-07-28T11:08:14.5799003Z         
2026-07-28T11:08:14.5799527Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5800146Z       name: 'AssertionError'
2026-07-28T11:08:14.5800743Z       expected: false
2026-07-28T11:08:14.5801464Z       actual: true
2026-07-28T11:08:14.5802083Z       operator: 'strictEqual'
2026-07-28T11:08:14.5802710Z       stack: |-
2026-07-28T11:08:14.5803820Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/authMiddleware.test.js:11:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5814875Z     not ok 2 - should return true (expired) for token with exp in the past
2026-07-28T11:08:14.5815735Z       ---
2026-07-28T11:08:14.5816267Z       duration_ms: 0.205151
2026-07-28T11:08:14.5817175Z       location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:14:3'
2026-07-28T11:08:14.5818088Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5818690Z       error: |-
2026-07-28T11:08:14.5819314Z         Past token SHOULD be expired
2026-07-28T11:08:14.5819897Z         
2026-07-28T11:08:14.5820376Z         false !== true
2026-07-28T11:08:14.5821130Z         
2026-07-28T11:08:14.5821742Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5822416Z       name: 'AssertionError'
2026-07-28T11:08:14.5823016Z       expected: true
2026-07-28T11:08:14.5823611Z       actual: false
2026-07-28T11:08:14.5824203Z       operator: 'strictEqual'
2026-07-28T11:08:14.5824770Z       stack: |-
2026-07-28T11:08:14.5825874Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/authMiddleware.test.js:19:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5843740Z     not ok 3 - should validate user role against list of allowed roles
2026-07-28T11:08:14.5844481Z       ---
2026-07-28T11:08:14.5845049Z       duration_ms: 0.298621
2026-07-28T11:08:14.5845984Z       location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:22:3'
2026-07-28T11:08:14.5846923Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5847546Z       error: |-
2026-07-28T11:08:14.5848152Z         Admin user should be permitted
2026-07-28T11:08:14.5848750Z         
2026-07-28T11:08:14.5849284Z         false !== true
2026-07-28T11:08:14.5849849Z         
2026-07-28T11:08:14.5850518Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5851537Z       name: 'AssertionError'
2026-07-28T11:08:14.5852140Z       expected: true
2026-07-28T11:08:14.5852726Z       actual: false
2026-07-28T11:08:14.5853325Z       operator: 'strictEqual'
2026-07-28T11:08:14.5853956Z       stack: |-
2026-07-28T11:08:14.5855032Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/authMiddleware.test.js:27:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5863101Z not ok 2 - Scenario 4: Auth Middleware Permissions
2026-07-28T11:08:14.5863842Z   ---
2026-07-28T11:08:14.5864367Z   duration_ms: 3.448444
2026-07-28T11:08:14.5864937Z   type: 'suite'
2026-07-28T11:08:14.5865887Z   location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:5:1'
2026-07-28T11:08:14.5866995Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.5867665Z   error: '3 subtests failed'
2026-07-28T11:08:14.5868263Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5868872Z   ...
2026-07-28T11:08:14.5869671Z # Subtest: Scenario 3: Data Processor Async Flow
2026-07-28T11:08:14.5870541Z     # Subtest: should return processed array containing all fetched users
2026-07-28T11:08:14.5871793Z     not ok 1 - should return processed array containing all fetched users
2026-07-28T11:08:14.5872556Z       ---
2026-07-28T11:08:14.5873141Z       duration_ms: 4.386339
2026-07-28T11:08:14.5874051Z       location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:6:3'
2026-07-28T11:08:14.5874989Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5875671Z       error: |-
2026-07-28T11:08:14.5876285Z         Batch results should contain 3 users
2026-07-28T11:08:14.5876955Z         
2026-07-28T11:08:14.5877470Z         0 !== 3
2026-07-28T11:08:14.5877980Z         
2026-07-28T11:08:14.5878533Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5879126Z       name: 'AssertionError'
2026-07-28T11:08:14.5879727Z       expected: 3
2026-07-28T11:08:14.5880296Z       actual: 0
2026-07-28T11:08:14.5880960Z       operator: 'strictEqual'
2026-07-28T11:08:14.5881676Z       stack: |-
2026-07-28T11:08:14.5882663Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/dataProcessor.test.js:10:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5889028Z     not ok 2 - should aggregate score objects with initial value 0
2026-07-28T11:08:14.5889760Z       ---
2026-07-28T11:08:14.5890282Z       duration_ms: 0.626131
2026-07-28T11:08:14.5891539Z       location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:16:3'
2026-07-28T11:08:14.5892649Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5893517Z       error: |-
2026-07-28T11:08:14.5895031Z         Aggregated total score should equal 60
2026-07-28T11:08:14.5895935Z         + actual - expected
2026-07-28T11:08:14.5896485Z         
2026-07-28T11:08:14.5896952Z         + '[object Object]2030'
2026-07-28T11:08:14.5897511Z         - 60
2026-07-28T11:08:14.5897987Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5898584Z       name: 'AssertionError'
2026-07-28T11:08:14.5899212Z       expected: 60
2026-07-28T11:08:14.5899731Z       actual: '[object Object]2030'
2026-07-28T11:08:14.5900349Z       operator: 'strictEqual'
2026-07-28T11:08:14.5900976Z       stack: |-
2026-07-28T11:08:14.5902074Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/dataProcessor.test.js:20:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5905907Z     not ok 3 - should handle empty scores array gracefully
2026-07-28T11:08:14.5906483Z       ---
2026-07-28T11:08:14.5906878Z       duration_ms: 0.421135
2026-07-28T11:08:14.5907641Z       location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:23:3'
2026-07-28T11:08:14.5908425Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5909017Z       error: 'Reduce of empty array with no initial value'
2026-07-28T11:08:14.5909681Z       code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5910156Z       name: 'TypeError'
2026-07-28T11:08:14.5910624Z       stack: |-
2026-07-28T11:08:14.5911543Z         Array.reduce (<anonymous>)
2026-07-28T11:08:14.5912543Z         aggregateScores (file:///home/runner/work/test-field/test-field/src/modules/dataProcessor.js:23:17)
2026-07-28T11:08:14.5913921Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/dataProcessor.test.js:24:25)
2026-07-28T11:08:14.5914986Z         Test.runInAsyncScope (node:async_hooks:206:9)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5920908Z not ok 3 - Scenario 3: Data Processor Async Flow
2026-07-28T11:08:14.5921606Z   ---
2026-07-28T11:08:14.5921997Z   duration_ms: 7.266905
2026-07-28T11:08:14.5922399Z   type: 'suite'
2026-07-28T11:08:14.5923164Z   location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:5:1'
2026-07-28T11:08:14.5923940Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.5924483Z   error: '3 subtests failed'
2026-07-28T11:08:14.5924969Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5925411Z   ...
2026-07-28T11:08:14.6262432Z # Subtest: Scenario 2: Payment Gateway
2026-07-28T11:08:14.6268257Z     # Subtest: should apply 15% discount for GOLD tier on exact threshold purchase ($1000)
2026-07-28T11:08:14.6270389Z     not ok 1 - should apply 15% discount for GOLD tier on exact threshold purchase ($1000)
2026-07-28T11:08:14.6271605Z       ---
2026-07-28T11:08:14.6272269Z       duration_ms: 1.757496
2026-07-28T11:08:14.6273311Z       location: '/home/runner/work/test-field/test-field/tests/paymentGateway.test.js:6:3'
2026-07-28T11:08:14.6274307Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6275030Z       error: |-
2026-07-28T11:08:14.6275701Z         Expected values to be strictly equal:
2026-07-28T11:08:14.6281246Z         
2026-07-28T11:08:14.6282040Z         1000 !== 850
2026-07-28T11:08:14.6282565Z         
2026-07-28T11:08:14.6283184Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6283836Z       name: 'AssertionError'
2026-07-28T11:08:14.6284456Z       expected: 850
2026-07-28T11:08:14.6285189Z       actual: 1000
2026-07-28T11:08:14.6285762Z       operator: 'strictEqual'
2026-07-28T11:08:14.6286460Z       stack: |-
2026-07-28T11:08:14.6287521Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/paymentGateway.test.js:9:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.6304476Z     not ok 3 - should calculate correct transaction fee for maximum tier index without returning NaN
2026-07-28T11:08:14.6305491Z       ---
2026-07-28T11:08:14.6307244Z       duration_ms: 0.217677
2026-07-28T11:08:14.6308159Z       location: '/home/runner/work/test-field/test-field/tests/paymentGateway.test.js:17:3'
2026-07-28T11:08:14.6308999Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6309586Z       error: |-
2026-07-28T11:08:14.6311633Z         Transaction fee should not be NaN
2026-07-28T11:08:14.6312149Z         
2026-07-28T11:08:14.6312622Z         true !== false
2026-07-28T11:08:14.6313037Z         
2026-07-28T11:08:14.6313464Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6314104Z       name: 'AssertionError'
2026-07-28T11:08:14.6314621Z       expected: false
2026-07-28T11:08:14.6315100Z       actual: true
2026-07-28T11:08:14.6315561Z       operator: 'strictEqual'
2026-07-28T11:08:14.6316005Z       stack: |-
2026-07-28T11:08:14.6317008Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/paymentGateway.test.js:21:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.6338757Z not ok 4 - Scenario 2: Payment Gateway
2026-07-28T11:08:14.6339420Z   ---
2026-07-28T11:08:14.6340014Z   duration_ms: 3.240649
2026-07-28T11:08:14.6340546Z   type: 'suite'
2026-07-28T11:08:14.6341908Z   location: '/home/runner/work/test-field/test-field/tests/paymentGateway.test.js:5:1'
2026-07-28T11:08:14.6342853Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.6343284Z   error: '2 subtests failed'
2026-07-28T11:08:14.6343621Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.6343934Z   ...
2026-07-28T11:08:14.6344364Z # Subtest: Scenario 1: User Service
2026-07-28T11:08:14.6344875Z     # Subtest: should return display info for full user profile
2026-07-28T11:08:14.6345427Z     ok 1 - should return display info for full user profile
2026-07-28T11:08:14.6345962Z       ---
2026-07-28T11:08:14.6346341Z       duration_ms: 0.825856
2026-07-28T11:08:14.6346959Z       ...
2026-07-28T11:08:14.6347786Z     # Subtest: should handle missing settings or profile gracefully without throwing TypeError
2026-07-28T11:08:14.6348931Z     not ok 2 - should handle missing settings or profile gracefully without throwing TypeError
2026-07-28T11:08:14.6349655Z       ---
2026-07-28T11:08:14.6350102Z       duration_ms: 0.842042
2026-07-28T11:08:14.6351094Z       location: '/home/runner/work/test-field/test-field/tests/userService.test.js:19:3'
2026-07-28T11:08:14.6352024Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6352555Z       error: |-
2026-07-28T11:08:14.6353074Z         Got unwanted exception.
2026-07-28T11:08:14.6353863Z         Actual message: "Cannot read properties of undefined (reading 'name')"
2026-07-28T11:08:14.6354552Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6355041Z       name: 'AssertionError'
2026-07-28T11:08:14.6355517Z       actual:
2026-07-28T11:08:14.6356123Z       error: "Cannot read properties of undefined (reading 'name')"
2026-07-28T11:08:14.6356751Z       name: 'TypeError'
2026-07-28T11:08:14.6357173Z       stack: |-
2026-07-28T11:08:14.6358009Z         getUserDisplayInfo (file:///home/runner/work/test-field/test-field/src/modules/userService.js:7:29)
2026-07-28T11:08:14.6359245Z         file:///home/runner/work/test-field/test-field/tests/userService.test.js:25:20
2026-07-28T11:08:14.6360082Z         getActual (node:assert:498:5)
2026-07-28T11:08:14.6360734Z         Function.doesNotThrow (node:assert:664:32)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.6378196Z     not ok 3 - should format address safely when address is missing or partial
2026-07-28T11:08:14.6378837Z       ---
2026-07-28T11:08:14.6379372Z       duration_ms: 0.315854
2026-07-28T11:08:14.6380365Z       location: '/home/runner/work/test-field/test-field/tests/userService.test.js:30:3'
2026-07-28T11:08:14.6381739Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6382411Z       error: |-
2026-07-28T11:08:14.6383053Z         Got unwanted exception.
2026-07-28T11:08:14.6384153Z         Actual message: "Cannot read properties of undefined (reading 'street')"
2026-07-28T11:08:14.6385206Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6386017Z       name: 'AssertionError'
2026-07-28T11:08:14.6386755Z       actual:
2026-07-28T11:08:14.6387790Z       error: "Cannot read properties of undefined (reading 'street')"
2026-07-28T11:08:14.6388500Z       name: 'TypeError'
2026-07-28T11:08:14.6388903Z       stack: |-
2026-07-28T11:08:14.6389821Z         formatUserAddress (file:///home/runner/work/test-field/test-field/src/modules/userService.js:20:31)
2026-07-28T11:08:14.6391158Z         file:///home/runner/work/test-field/test-field/tests/userService.test.js:33:20
2026-07-28T11:08:14.6392018Z         getActual (node:assert:498:5)
2026-07-28T11:08:14.6392586Z         Function.doesNotThrow (node:assert:664:32)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.6406722Z     not ok 4 - should calculate account age without crashing on invalid or missing date
2026-07-28T11:08:14.6407406Z       ---
2026-07-28T11:08:14.6407852Z       duration_ms: 1.075925
2026-07-28T11:08:14.6408651Z       location: '/home/runner/work/test-field/test-field/tests/userService.test.js:38:3'
2026-07-28T11:08:14.6409468Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6409981Z       error: |-
2026-07-28T11:08:14.6410488Z         Expected values to be strictly equal:
2026-07-28T11:08:14.6411269Z         
2026-07-28T11:08:14.6411670Z         true !== false
2026-07-28T11:08:14.6412045Z         
2026-07-28T11:08:14.6412530Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6413018Z       name: 'AssertionError'
2026-07-28T11:08:14.6413469Z       expected: false
2026-07-28T11:08:14.6413844Z       actual: true
2026-07-28T11:08:14.6414233Z       operator: 'strictEqual'
2026-07-28T11:08:14.6414723Z       stack: |-
2026-07-28T11:08:14.6415540Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/userService.test.js:42:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.6422666Z not ok 5 - Scenario 1: User Service
2026-07-28T11:08:14.6423267Z   ---
2026-07-28T11:08:14.6423653Z   duration_ms: 4.70425
2026-07-28T11:08:14.6424156Z   type: 'suite'
2026-07-28T11:08:14.6424877Z   location: '/home/runner/work/test-field/test-field/tests/userService.test.js:5:1'
2026-07-28T11:08:14.6425811Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.6426336Z   error: '3 subtests failed'
2026-07-28T11:08:14.6426876Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.6427341Z   ...
2026-07-28T11:08:14.6427794Z 1..5
2026-07-28T11:08:14.6428182Z # tests 16
2026-07-28T11:08:14.6428579Z # suites 5
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.6429381Z # fail 13
2026-07-28T11:08:14.6429770Z # cancelled 0
2026-07-28T11:08:14.6430183Z # skipped 0
2026-07-28T11:08:14.6430611Z # todo 0
2026-07-28T11:08:14.6431247Z # duration_ms 137.903392
2026-07-28T11:08:14.6473979Z ##[error]Process completed with exit code 1.
2026-07-28T11:08:14.6624563Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-07-28T11:08:14.6625710Z Post job cleanup.
2026-07-28T11:08:14.7422878Z [command]/usr/bin/git version
2026-07-28T11:08:14.7458837Z git version 2.54.0
2026-07-28T11:08:14.7491534Z Temporarily overriding HOME='/home/runner/work/_temp/b686d91e-13f7-4943-a451-24587a58d79b' before making global git config changes
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.4699625Z 
2026-07-28T11:08:14.4705170Z > llm-self-healing-testbed@1.0.0 test
2026-07-28T11:08:14.4706030Z > node --test tests/*.test.js
2026-07-28T11:08:14.4706249Z 
2026-07-28T11:08:14.5121737Z TAP version 13
2026-07-28T11:08:14.5579075Z # Subtest: Scenario 5: API Router & Error Handler
2026-07-28T11:08:14.5602533Z     # Subtest: should return 200 OK for valid request payload
2026-07-28T11:08:14.5604249Z     ok 1 - should return 200 OK for valid request payload
2026-07-28T11:08:14.5605439Z       ---
2026-07-28T11:08:14.5606206Z       duration_ms: 1.095327
2026-07-28T11:08:14.5606901Z       ...
2026-07-28T11:08:14.5607987Z     # Subtest: should return 400 Bad Request when email is missing without throwing unhandled exception
2026-07-28T11:08:14.5632482Z     not ok 2 - should return 400 Bad Request when email is missing without throwing unhandled exception
2026-07-28T11:08:14.5633919Z       ---
2026-07-28T11:08:14.5634402Z       duration_ms: 1.103566
2026-07-28T11:08:14.5635403Z       location: '/home/runner/work/test-field/test-field/tests/apiRouter.test.js:14:3'
2026-07-28T11:08:14.5636373Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5636899Z       error: |-
2026-07-28T11:08:14.5637499Z         Got unwanted exception.
2026-07-28T11:08:14.5638275Z         Actual message: "Cannot read properties of undefined (reading 'map')"
2026-07-28T11:08:14.5639019Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5640006Z       name: 'AssertionError'
2026-07-28T11:08:14.5640488Z       actual:
2026-07-28T11:08:14.5641366Z       error: "Cannot read properties of undefined (reading 'map')"
2026-07-28T11:08:14.5642155Z       name: 'TypeError'
2026-07-28T11:08:14.5642593Z       stack: |-
2026-07-28T11:08:14.5643453Z         handleApiRequest (file:///home/runner/work/test-field/test-field/src/modules/apiRouter.js:27:41)
2026-07-28T11:08:14.5644493Z         file:///home/runner/work/test-field/test-field/tests/apiRouter.test.js:18:19
2026-07-28T11:08:14.5645308Z         getActual (node:assert:498:5)
2026-07-28T11:08:14.5645953Z         Function.doesNotThrow (node:assert:664:32)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5663440Z     not ok 3 - should return 400 Bad Request when user is underage
2026-07-28T11:08:14.5664443Z       ---
2026-07-28T11:08:14.5664902Z       duration_ms: 0.238655
2026-07-28T11:08:14.5665599Z       location: '/home/runner/work/test-field/test-field/tests/apiRouter.test.js:25:3'
2026-07-28T11:08:14.5666464Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5667149Z       error: "Cannot read properties of undefined (reading 'map')"
2026-07-28T11:08:14.5667785Z       code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5668227Z       name: 'TypeError'
2026-07-28T11:08:14.5668873Z       stack: |-
2026-07-28T11:08:14.5669823Z         handleApiRequest (file:///home/runner/work/test-field/test-field/src/modules/apiRouter.js:27:41)
2026-07-28T11:08:14.5671260Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/apiRouter.test.js:28:17)
2026-07-28T11:08:14.5672317Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.5672837Z         Test.run (node:internal/test_runner/test:796:25)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5673945Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.5674433Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.5674971Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.5675479Z       ...
2026-07-28T11:08:14.5675777Z     1..3
2026-07-28T11:08:14.5676159Z not ok 1 - Scenario 5: API Router & Error Handler
2026-07-28T11:08:14.5676528Z   ---
2026-07-28T11:08:14.5676903Z   duration_ms: 4.173842
2026-07-28T11:08:14.5677279Z   type: 'suite'
2026-07-28T11:08:14.5677928Z   location: '/home/runner/work/test-field/test-field/tests/apiRouter.test.js:5:1'
2026-07-28T11:08:14.5678412Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.5678762Z   error: '2 subtests failed'
2026-07-28T11:08:14.5679115Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5679421Z   ...
2026-07-28T11:08:14.5753918Z # Subtest: Scenario 4: Auth Middleware Permissions
2026-07-28T11:08:14.5783257Z     # Subtest: should return false (not expired) for token with exp in the future
2026-07-28T11:08:14.5791588Z     not ok 1 - should return false (not expired) for token with exp in the future
2026-07-28T11:08:14.5792916Z       ---
2026-07-28T11:08:14.5793572Z       duration_ms: 1.810183
2026-07-28T11:08:14.5794656Z       location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:6:3'
2026-07-28T11:08:14.5795806Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5796499Z       error: |-
2026-07-28T11:08:14.5797214Z         Future token should NOT be expired
2026-07-28T11:08:14.5797884Z         
2026-07-28T11:08:14.5798402Z         true !== false
2026-07-28T11:08:14.5798997Z         
2026-07-28T11:08:14.5799522Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5800141Z       name: 'AssertionError'
2026-07-28T11:08:14.5800738Z       expected: false
2026-07-28T11:08:14.5801456Z       actual: true
2026-07-28T11:08:14.5802058Z       operator: 'strictEqual'
2026-07-28T11:08:14.5802704Z       stack: |-
2026-07-28T11:08:14.5803813Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/authMiddleware.test.js:11:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5814869Z     not ok 2 - should return true (expired) for token with exp in the past
2026-07-28T11:08:14.5815729Z       ---
2026-07-28T11:08:14.5816261Z       duration_ms: 0.205151
2026-07-28T11:08:14.5817169Z       location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:14:3'
2026-07-28T11:08:14.5818084Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5818684Z       error: |-
2026-07-28T11:08:14.5819308Z         Past token SHOULD be expired
2026-07-28T11:08:14.5819891Z         
2026-07-28T11:08:14.5820370Z         false !== true
2026-07-28T11:08:14.5821120Z         
2026-07-28T11:08:14.5821712Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5822410Z       name: 'AssertionError'
2026-07-28T11:08:14.5823010Z       expected: true
2026-07-28T11:08:14.5823606Z       actual: false
2026-07-28T11:08:14.5824198Z       operator: 'strictEqual'
2026-07-28T11:08:14.5824764Z       stack: |-
2026-07-28T11:08:14.5825849Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/authMiddleware.test.js:19:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5843713Z     not ok 3 - should validate user role against list of allowed roles
2026-07-28T11:08:14.5844475Z       ---
2026-07-28T11:08:14.5845042Z       duration_ms: 0.298621
2026-07-28T11:08:14.5845978Z       location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:22:3'
2026-07-28T11:08:14.5846917Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5847540Z       error: |-
2026-07-28T11:08:14.5848147Z         Admin user should be permitted
2026-07-28T11:08:14.5848744Z         
2026-07-28T11:08:14.5849278Z         false !== true
2026-07-28T11:08:14.5849843Z         
2026-07-28T11:08:14.5850511Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5851526Z       name: 'AssertionError'
2026-07-28T11:08:14.5852135Z       expected: true
2026-07-28T11:08:14.5852721Z       actual: false
2026-07-28T11:08:14.5853320Z       operator: 'strictEqual'
2026-07-28T11:08:14.5853951Z       stack: |-
2026-07-28T11:08:14.5855001Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/authMiddleware.test.js:27:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5863095Z not ok 2 - Scenario 4: Auth Middleware Permissions
2026-07-28T11:08:14.5863836Z   ---
2026-07-28T11:08:14.5864361Z   duration_ms: 3.448444
2026-07-28T11:08:14.5864931Z   type: 'suite'
2026-07-28T11:08:14.5865877Z   location: '/home/runner/work/test-field/test-field/tests/authMiddleware.test.js:5:1'
2026-07-28T11:08:14.5866779Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.5867658Z   error: '3 subtests failed'
2026-07-28T11:08:14.5868258Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5868867Z   ...
2026-07-28T11:08:14.5869666Z # Subtest: Scenario 3: Data Processor Async Flow
2026-07-28T11:08:14.5870535Z     # Subtest: should return processed array containing all fetched users
2026-07-28T11:08:14.5871782Z     not ok 1 - should return processed array containing all fetched users
2026-07-28T11:08:14.5872550Z       ---
2026-07-28T11:08:14.5873135Z       duration_ms: 4.386339
2026-07-28T11:08:14.5874045Z       location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:6:3'
2026-07-28T11:08:14.5874983Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5875665Z       error: |-
2026-07-28T11:08:14.5876279Z         Batch results should contain 3 users
2026-07-28T11:08:14.5876948Z         
2026-07-28T11:08:14.5877464Z         0 !== 3
2026-07-28T11:08:14.5877974Z         
2026-07-28T11:08:14.5878513Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5879121Z       name: 'AssertionError'
2026-07-28T11:08:14.5879720Z       expected: 3
2026-07-28T11:08:14.5880291Z       actual: 0
2026-07-28T11:08:14.5880949Z       operator: 'strictEqual'
2026-07-28T11:08:14.5881671Z       stack: |-
2026-07-28T11:08:14.5882656Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/dataProcessor.test.js:10:12)
----------------------------------------


--- [Error Context Detected (Middle)] ---
2026-07-28T11:08:14.5889023Z     not ok 2 - should aggregate score objects with initial value 0
2026-07-28T11:08:14.5889745Z       ---
2026-07-28T11:08:14.5890276Z       duration_ms: 0.626131
2026-07-28T11:08:14.5891528Z       location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:16:3'
2026-07-28T11:08:14.5892640Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5893508Z       error: |-
2026-07-28T11:08:14.5894985Z         Aggregated total score should equal 60
2026-07-28T11:08:14.5895929Z         + actual - expected
2026-07-28T11:08:14.5896479Z         
----------------------------------------

... [System Alert: Truncated - 923 lines omitted] ...
... [Normal logs omitted to fit AI context limit] ...
2026-07-28T11:08:14.5896946Z         + '[object Object]2030'
2026-07-28T11:08:14.5897506Z         - 60
2026-07-28T11:08:14.5897981Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.5898578Z       name: 'AssertionError'
2026-07-28T11:08:14.5899164Z       expected: 60
2026-07-28T11:08:14.5899725Z       actual: '[object Object]2030'
2026-07-28T11:08:14.5900343Z       operator: 'strictEqual'
2026-07-28T11:08:14.5900966Z       stack: |-
2026-07-28T11:08:14.5902049Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/dataProcessor.test.js:20:12)
2026-07-28T11:08:14.5903103Z         async Test.run (node:internal/test_runner/test:797:9)
2026-07-28T11:08:14.5903948Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.5904641Z       ...
2026-07-28T11:08:14.5905167Z     # Subtest: should handle empty scores array gracefully
2026-07-28T11:08:14.5905902Z     not ok 3 - should handle empty scores array gracefully
2026-07-28T11:08:14.5906477Z       ---
2026-07-28T11:08:14.5906871Z       duration_ms: 0.421135
2026-07-28T11:08:14.5907635Z       location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:23:3'
2026-07-28T11:08:14.5908419Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.5909012Z       error: 'Reduce of empty array with no initial value'
2026-07-28T11:08:14.5909675Z       code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5910149Z       name: 'TypeError'
2026-07-28T11:08:14.5910618Z       stack: |-
2026-07-28T11:08:14.5911286Z         Array.reduce (<anonymous>)
2026-07-28T11:08:14.5912536Z         aggregateScores (file:///home/runner/work/test-field/test-field/src/modules/dataProcessor.js:23:17)
2026-07-28T11:08:14.5913913Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/dataProcessor.test.js:24:25)
2026-07-28T11:08:14.5914975Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.5915690Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.5916549Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.5917410Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.5918256Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.5919087Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.5919824Z       ...
2026-07-28T11:08:14.5920205Z     1..3
2026-07-28T11:08:14.5920896Z not ok 3 - Scenario 3: Data Processor Async Flow
2026-07-28T11:08:14.5921575Z   ---
2026-07-28T11:08:14.5921991Z   duration_ms: 7.266905
2026-07-28T11:08:14.5922392Z   type: 'suite'
2026-07-28T11:08:14.5923157Z   location: '/home/runner/work/test-field/test-field/tests/dataProcessor.test.js:5:1'
2026-07-28T11:08:14.5923934Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.5924477Z   error: '3 subtests failed'
2026-07-28T11:08:14.5924962Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.5925405Z   ...
2026-07-28T11:08:14.6262384Z # Subtest: Scenario 2: Payment Gateway
2026-07-28T11:08:14.6268226Z     # Subtest: should apply 15% discount for GOLD tier on exact threshold purchase ($1000)
2026-07-28T11:08:14.6270372Z     not ok 1 - should apply 15% discount for GOLD tier on exact threshold purchase ($1000)
2026-07-28T11:08:14.6271592Z       ---
2026-07-28T11:08:14.6272256Z       duration_ms: 1.757496
2026-07-28T11:08:14.6273301Z       location: '/home/runner/work/test-field/test-field/tests/paymentGateway.test.js:6:3'
2026-07-28T11:08:14.6274263Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6275020Z       error: |-
2026-07-28T11:08:14.6275694Z         Expected values to be strictly equal:
2026-07-28T11:08:14.6281227Z         
2026-07-28T11:08:14.6282030Z         1000 !== 850
2026-07-28T11:08:14.6282554Z         
2026-07-28T11:08:14.6283174Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6283825Z       name: 'AssertionError'
2026-07-28T11:08:14.6284446Z       expected: 850
2026-07-28T11:08:14.6285179Z       actual: 1000
2026-07-28T11:08:14.6285753Z       operator: 'strictEqual'
2026-07-28T11:08:14.6286376Z       stack: |-
2026-07-28T11:08:14.6287507Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/paymentGateway.test.js:9:12)
2026-07-28T11:08:14.6288772Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6289916Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6291190Z         Test.start (node:internal/test_runner/test:702:17)
2026-07-28T11:08:14.6292095Z         node:internal/test_runner/test:1133:71
2026-07-28T11:08:14.6293072Z         node:internal/per_context/primordials:482:82
2026-07-28T11:08:14.6293940Z         new Promise (<anonymous>)
2026-07-28T11:08:14.6294942Z         new SafePromise (node:internal/per_context/primordials:450:29)
2026-07-28T11:08:14.6295951Z         node:internal/per_context/primordials:482:9
2026-07-28T11:08:14.6296778Z         Array.map (<anonymous>)
2026-07-28T11:08:14.6297481Z       ...
2026-07-28T11:08:14.6298336Z     # Subtest: should apply 20% discount for PLATINUM tier on $1500 purchase
2026-07-28T11:08:14.6299499Z     ok 2 - should apply 20% discount for PLATINUM tier on $1500 purchase
2026-07-28T11:08:14.6300354Z       ---
2026-07-28T11:08:14.6301082Z       duration_ms: 0.126798
2026-07-28T11:08:14.6301745Z       ...
2026-07-28T11:08:14.6302752Z     # Subtest: should calculate correct transaction fee for maximum tier index without returning NaN
2026-07-28T11:08:14.6304235Z     not ok 3 - should calculate correct transaction fee for maximum tier index without returning NaN
2026-07-28T11:08:14.6305484Z       ---
2026-07-28T11:08:14.6307233Z       duration_ms: 0.217677
2026-07-28T11:08:14.6308152Z       location: '/home/runner/work/test-field/test-field/tests/paymentGateway.test.js:17:3'
2026-07-28T11:08:14.6308993Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6309578Z       error: |-
2026-07-28T11:08:14.6311621Z         Transaction fee should not be NaN
2026-07-28T11:08:14.6312141Z         
2026-07-28T11:08:14.6312615Z         true !== false
2026-07-28T11:08:14.6313031Z         
2026-07-28T11:08:14.6313458Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6314093Z       name: 'AssertionError'
2026-07-28T11:08:14.6314615Z       expected: false
2026-07-28T11:08:14.6315093Z       actual: true
2026-07-28T11:08:14.6315556Z       operator: 'strictEqual'
2026-07-28T11:08:14.6315999Z       stack: |-
2026-07-28T11:08:14.6316990Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/paymentGateway.test.js:21:12)
2026-07-28T11:08:14.6318405Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6319413Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6332741Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.6333998Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.6335144Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.6336324Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.6337305Z       ...
2026-07-28T11:08:14.6337879Z     1..3
2026-07-28T11:08:14.6338751Z not ok 4 - Scenario 2: Payment Gateway
2026-07-28T11:08:14.6339414Z   ---
2026-07-28T11:08:14.6340002Z   duration_ms: 3.240649
2026-07-28T11:08:14.6340541Z   type: 'suite'
2026-07-28T11:08:14.6341892Z   location: '/home/runner/work/test-field/test-field/tests/paymentGateway.test.js:5:1'
2026-07-28T11:08:14.6342842Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.6343257Z   error: '2 subtests failed'
2026-07-28T11:08:14.6343617Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.6343930Z   ...
2026-07-28T11:08:14.6344360Z # Subtest: Scenario 1: User Service
2026-07-28T11:08:14.6344863Z     # Subtest: should return display info for full user profile
2026-07-28T11:08:14.6345424Z     ok 1 - should return display info for full user profile
2026-07-28T11:08:14.6345953Z       ---
2026-07-28T11:08:14.6346336Z       duration_ms: 0.825856
2026-07-28T11:08:14.6346944Z       ...
2026-07-28T11:08:14.6347779Z     # Subtest: should handle missing settings or profile gracefully without throwing TypeError
2026-07-28T11:08:14.6348920Z     not ok 2 - should handle missing settings or profile gracefully without throwing TypeError
2026-07-28T11:08:14.6349650Z       ---
2026-07-28T11:08:14.6350096Z       duration_ms: 0.842042
2026-07-28T11:08:14.6351082Z       location: '/home/runner/work/test-field/test-field/tests/userService.test.js:19:3'
2026-07-28T11:08:14.6351993Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6352549Z       error: |-
2026-07-28T11:08:14.6353044Z         Got unwanted exception.
2026-07-28T11:08:14.6353856Z         Actual message: "Cannot read properties of undefined (reading 'name')"
2026-07-28T11:08:14.6354547Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6355034Z       name: 'AssertionError'
2026-07-28T11:08:14.6355511Z       actual:
2026-07-28T11:08:14.6356117Z       error: "Cannot read properties of undefined (reading 'name')"
2026-07-28T11:08:14.6356746Z       name: 'TypeError'
2026-07-28T11:08:14.6357168Z       stack: |-
2026-07-28T11:08:14.6358001Z         getUserDisplayInfo (file:///home/runner/work/test-field/test-field/src/modules/userService.js:7:29)
2026-07-28T11:08:14.6359236Z         file:///home/runner/work/test-field/test-field/tests/userService.test.js:25:20
2026-07-28T11:08:14.6360075Z         getActual (node:assert:498:5)
2026-07-28T11:08:14.6360728Z         Function.doesNotThrow (node:assert:664:32)
2026-07-28T11:08:14.6362130Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/userService.test.js:24:12)
2026-07-28T11:08:14.6363374Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6364212Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6365103Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.6366022Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.6366784Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.6367388Z       operator: 'doesNotThrow'
2026-07-28T11:08:14.6367951Z       stack: |-
2026-07-28T11:08:14.6368859Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/userService.test.js:24:12)
2026-07-28T11:08:14.6369862Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6370594Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6371672Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.6372595Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.6373318Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.6373920Z         async Promise.all (index 0)
2026-07-28T11:08:14.6374703Z         async Suite.run (node:internal/test_runner/test:1135:7)
2026-07-28T11:08:14.6375621Z         async Test.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.6376363Z       ...
2026-07-28T11:08:14.6377002Z     # Subtest: should format address safely when address is missing or partial
2026-07-28T11:08:14.6378191Z     not ok 3 - should format address safely when address is missing or partial
2026-07-28T11:08:14.6378831Z       ---
2026-07-28T11:08:14.6379358Z       duration_ms: 0.315854
2026-07-28T11:08:14.6380350Z       location: '/home/runner/work/test-field/test-field/tests/userService.test.js:30:3'
2026-07-28T11:08:14.6381672Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6382397Z       error: |-
2026-07-28T11:08:14.6383019Z         Got unwanted exception.
2026-07-28T11:08:14.6384118Z         Actual message: "Cannot read properties of undefined (reading 'street')"
2026-07-28T11:08:14.6385192Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6386003Z       name: 'AssertionError'
2026-07-28T11:08:14.6386720Z       actual:
2026-07-28T11:08:14.6387775Z       error: "Cannot read properties of undefined (reading 'street')"
2026-07-28T11:08:14.6388489Z       name: 'TypeError'
2026-07-28T11:08:14.6388898Z       stack: |-
2026-07-28T11:08:14.6389807Z         formatUserAddress (file:///home/runner/work/test-field/test-field/src/modules/userService.js:20:31)
2026-07-28T11:08:14.6391143Z         file:///home/runner/work/test-field/test-field/tests/userService.test.js:33:20
2026-07-28T11:08:14.6392014Z         getActual (node:assert:498:5)
2026-07-28T11:08:14.6392579Z         Function.doesNotThrow (node:assert:664:32)
2026-07-28T11:08:14.6393558Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/userService.test.js:32:12)
2026-07-28T11:08:14.6394533Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6395201Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6395960Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.6396727Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.6397383Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.6397977Z       operator: 'doesNotThrow'
2026-07-28T11:08:14.6398488Z       stack: |-
2026-07-28T11:08:14.6399314Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/userService.test.js:32:12)
2026-07-28T11:08:14.6400208Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6401099Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6402002Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.6402921Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.6403499Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.6404343Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.6404970Z       ...
2026-07-28T11:08:14.6405697Z     # Subtest: should calculate account age without crashing on invalid or missing date
2026-07-28T11:08:14.6406716Z     not ok 4 - should calculate account age without crashing on invalid or missing date
2026-07-28T11:08:14.6407400Z       ---
2026-07-28T11:08:14.6407846Z       duration_ms: 1.075925
2026-07-28T11:08:14.6408644Z       location: '/home/runner/work/test-field/test-field/tests/userService.test.js:38:3'
2026-07-28T11:08:14.6409462Z       failureType: 'testCodeFailure'
2026-07-28T11:08:14.6409975Z       error: |-
2026-07-28T11:08:14.6410482Z         Expected values to be strictly equal:
2026-07-28T11:08:14.6411238Z         
2026-07-28T11:08:14.6411663Z         true !== false
2026-07-28T11:08:14.6412040Z         
2026-07-28T11:08:14.6412526Z       code: 'ERR_ASSERTION'
2026-07-28T11:08:14.6413012Z       name: 'AssertionError'
2026-07-28T11:08:14.6413464Z       expected: false
2026-07-28T11:08:14.6413839Z       actual: true
2026-07-28T11:08:14.6414227Z       operator: 'strictEqual'
2026-07-28T11:08:14.6414717Z       stack: |-
2026-07-28T11:08:14.6415533Z         TestContext.<anonymous> (file:///home/runner/work/test-field/test-field/tests/userService.test.js:42:12)
2026-07-28T11:08:14.6416523Z         Test.runInAsyncScope (node:async_hooks:206:9)
2026-07-28T11:08:14.6417506Z         Test.run (node:internal/test_runner/test:796:25)
2026-07-28T11:08:14.6418304Z         Suite.processPendingSubtests (node:internal/test_runner/test:526:18)
2026-07-28T11:08:14.6419188Z         Test.postRun (node:internal/test_runner/test:889:19)
2026-07-28T11:08:14.6419919Z         Test.run (node:internal/test_runner/test:835:12)
2026-07-28T11:08:14.6420933Z         async Suite.processPendingSubtests (node:internal/test_runner/test:526:7)
2026-07-28T11:08:14.6421703Z       ...
2026-07-28T11:08:14.6422113Z     1..4
2026-07-28T11:08:14.6422661Z not ok 5 - Scenario 1: User Service
2026-07-28T11:08:14.6423256Z   ---
2026-07-28T11:08:14.6423648Z   duration_ms: 4.70425
2026-07-28T11:08:14.6424150Z   type: 'suite'
2026-07-28T11:08:14.6424871Z   location: '/home/runner/work/test-field/test-field/tests/userService.test.js:5:1'
2026-07-28T11:08:14.6425801Z   failureType: 'subtestsFailed'
2026-07-28T11:08:14.6426329Z   error: '3 subtests failed'
2026-07-28T11:08:14.6426871Z   code: 'ERR_TEST_FAILURE'
2026-07-28T11:08:14.6427336Z   ...
2026-07-28T11:08:14.6427789Z 1..5
2026-07-28T11:08:14.6428177Z # tests 16
2026-07-28T11:08:14.6428573Z # suites 5
2026-07-28T11:08:14.6428971Z # pass 3
2026-07-28T11:08:14.6429375Z # fail 13
2026-07-28T11:08:14.6429764Z # cancelled 0
2026-07-28T11:08:14.6430178Z # skipped 0
2026-07-28T11:08:14.6430606Z # todo 0
2026-07-28T11:08:14.6431213Z # duration_ms 137.903392
2026-07-28T11:08:14.6473949Z ##[error]Process completed with exit code 1.

=== File: Run Automated Test Suite/8_Post Checkout Source Code.txt ===
2026-07-28T11:08:14.6624547Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-07-28T11:08:14.6625705Z Post job cleanup.
2026-07-28T11:08:14.7422822Z [command]/usr/bin/git version
2026-07-28T11:08:14.7458793Z git version 2.54.0
2026-07-28T11:08:14.7491490Z Temporarily overriding HOME='/home/runner/work/_temp/b686d91e-13f7-4943-a451-24587a58d79b' before making global git config changes
2026-07-28T11:08:14.7493363Z Adding repository directory to the temporary git global config as a safe directory
2026-07-28T11:08:14.7499293Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/test-field/test-field
2026-07-28T11:08:14.7532975Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-07-28T11:08:14.7566436Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-07-28T11:08:14.7816064Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-07-28T11:08:14.7845483Z http.https://github.com/.extraheader
2026-07-28T11:08:14.7861733Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-07-28T11:08:14.7893830Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-07-28T11:08:14.8094776Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-07-28T11:08:14.8126904Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url

=== File: Run Automated Test Suite/9_Complete job.txt ===
2026-07-28T11:08:14.8448177Z Cleaning up orphan processes
2026-07-28T11:08:14.8729047Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

@grabic1060 grabic1060 closed this Aug 7, 2026
@grabic1060 grabic1060 reopened this Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant