{ "schemaVersion": "1.0", "fixtureVersion": "1.4.0", "syntheticOnly": true, "fixedReferenceClock": "2026-08-08T09:00:00Z", "testTenant": { "id": "11111111-1111-4111-8111-111111111111", "key": "KBX-TEST-TENANT" }, "actors": [ { "id": "actor.operator", "displayName": "테스트작업자", "userKey": "kbx-test-operator" }, { "id": "actor.supervisor", "displayName": "테스트관리자", "userKey": "kbx-test-supervisor" } ], "fixtureSets": [ { "id": "fixture.oms.orders.bulk-ship", "description": "출고 가능 2건 + 이미 완료되어 거부될 1건", "refs": [ "order.ship.ready.1", "order.ship.ready.2", "order.ship.rejected.1" ] }, { "id": "fixture.oms.order-register", "description": "거래처/창고/품목 Lookup 입력용", "refs": [ "customer.test.1", "warehouse.seoul", "item.shoe.black270" ] }, { "id": "fixture.oms.order-conflict", "description": "version=7 주문 한 건", "refs": [ "order.conflict.1", "idem.oms.order-confirm.001" ] }, { "id": "fixture.oms.order-import", "description": "6행 합성 Excel Import", "refs": [ "file.order-import.6rows" ] }, { "id": "fixture.wms.picking", "description": "A-03-02 위치 피킹 2개 필요", "refs": [ "task.pick.1", "scan.location.a0302", "scan.item.shoe", "scan.item.wrong" ] }, { "id": "fixture.common.operations", "description": "sourceVersion 10→11→10 순서 검증", "refs": [ "event.stock-shortage.v10", "event.stock-recovered.v11" ] }, { "id": "fixture.common.reconcile", "description": "OMS 10 / WMS 8 대사", "refs": [ "reconcile.oms-wms.pending" ] }, { "id": "fixture.erp.inventory-move", "description": "정상 이동과 동일창고 오류", "refs": [ "move.valid.1", "move.invalid.same-warehouse" ] }, { "id": "fixture.shell.user", "description": "Workspace 미저장 변경 UI 전용", "refs": [ "ui.order.receiver" ] }, { "id": "fixture.integration.outbox", "description": "외부연계 성공/일시/영구실패와 수동 재처리용 합성 메시지", "refs": [ "integration.message.dispatch.1", "integration.message.dispatch.2", "integration.attempt.failed.1", "idem.integration.retry.001" ] }, { "id": "fixture.integration.inbox", "description": "동일 Inbox 메시지 중복 수신 검증", "refs": [ "integration.inbox.message.1" ] }, { "id": "fixture.external-data.kis", "description": "KIS 현재가 fresh→expired strict 정책 검증", "refs": [ "provider.kis.price.success", "external-data.kis.cached.expired" ] }, { "id": "fixture.external-data.opendart", "description": "OPENDART 회사개황 stale-while-revalidate 검증", "refs": [ "provider.opendart.company.success", "external-data.opendart.cached.stale" ] }, { "id": "fixture.erp.item-price-fast-entry", "refs": [ "item.shoe.black270", "idem.erp.item-price.001" ] }, { "id": "fixture.erp.inventory-explorer", "refs": [ "item.shoe.black270", "warehouse.seoul" ] }, { "id": "fixture.erp.item-master-lifecycle", "description": "T02 품목 수정·충돌·사용중지 Lifecycle", "refs": [ "item.shoe.black270", "warehouse.seoul" ] } ], "refs": { "customer.test.1": { "kind": "customer", "id": "20000000-0000-4000-8000-000000000001", "code": "TEST-C001", "name": "테스트거래처A" }, "warehouse.seoul": { "kind": "warehouse", "id": "30000000-0000-4000-8000-000000000001", "code": "TEST-WH01", "name": "테스트서울센터" }, "warehouse.busan": { "kind": "warehouse", "id": "30000000-0000-4000-8000-000000000002", "code": "TEST-WH02", "name": "테스트부산센터" }, "item.shoe.black270": { "kind": "item", "id": "40000000-0000-4000-8000-000000000001", "code": "TEST-ITEM-001", "name": "테스트운동화" }, "item.wrong": { "kind": "item", "id": "40000000-0000-4000-8000-000000000002", "code": "TEST-ITEM-999", "name": "테스트오상품" }, "order.ship.ready.1": { "kind": "order", "id": "50000000-0000-4000-8000-000000000001", "orderNo": "TEST-ORD-SHIP-001", "status": "READY", "version": 1 }, "order.ship.ready.2": { "kind": "order", "id": "50000000-0000-4000-8000-000000000002", "orderNo": "TEST-ORD-SHIP-002", "status": "DRAFT", "version": 3 }, "order.ship.rejected.1": { "kind": "order", "id": "50000000-0000-4000-8000-000000000003", "orderNo": "TEST-ORD-SHIP-003", "status": "SHIPPED", "version": 5 }, "order.conflict.1": { "kind": "order", "id": "50000000-0000-4000-8000-000000000004", "orderNo": "TEST-ORD-CONFLICT-001", "status": "DRAFT", "version": 7 }, "task.pick.1": { "kind": "picking-task", "id": "60000000-0000-4000-8000-000000000001", "taskNo": "TEST-PICK-001", "status": "READY", "version": 1 }, "scan.location.a0302": { "kind": "barcode", "value": "TEST-LOC-A0302", "classification": "synthetic" }, "scan.item.shoe": { "kind": "barcode", "value": "TEST-EAN-000001", "classification": "synthetic" }, "scan.item.wrong": { "kind": "barcode", "value": "TEST-EAN-999999", "classification": "synthetic" }, "event.stock-shortage.v10": { "kind": "domain-event", "sourceId": "TEST-ORD-EXC-001", "referenceNo": "TEST-ORD-EXC-001", "sourceVersion": 10, "code": "STOCK_SHORTAGE" }, "event.stock-recovered.v11": { "kind": "domain-event", "sourceId": "TEST-ORD-EXC-001", "referenceNo": "TEST-ORD-EXC-001", "sourceVersion": 11, "code": "STOCK_SHORTAGE" }, "reconcile.oms-wms.pending": { "kind": "reconcile", "referenceNo": "TEST-ORD-REC-001", "expected": "10", "actual": "8", "difference": "-2" }, "move.valid.1": { "kind": "inventory-move", "id": "70000000-0000-4000-8000-000000000001", "moveNo": "TEST-MOVE-001", "from": "warehouse.seoul", "to": "warehouse.busan" }, "move.invalid.same-warehouse": { "kind": "inventory-move", "id": "70000000-0000-4000-8000-000000000002", "moveNo": "TEST-MOVE-ERR-001", "from": "warehouse.seoul", "to": "warehouse.seoul" }, "file.order-import.6rows": { "kind": "xlsx-fixture", "path": "tests/fixtures/files/order-import-6rows.json", "rows": 6, "classification": "synthetic" }, "ui.order.receiver": { "kind": "ui-value", "value": "테스트수취인" }, "idem.oms.bulk-ship.001": { "kind": "idempotency-key", "value": "kbx-test-oms-bulk-ship-001" }, "idem.import.commit.001": { "kind": "idempotency-key", "value": "kbx-test-import-commit-001" }, "idem.wms.location.001": { "kind": "idempotency-key", "value": "kbx-test-wms-location-001" }, "idem.wms.item.001": { "kind": "idempotency-key", "value": "kbx-test-wms-item-001" }, "idem.wms.location.002": { "kind": "idempotency-key", "value": "kbx-test-wms-location-002" }, "idem.wms.wrong.001": { "kind": "idempotency-key", "value": "kbx-test-wms-wrong-001" }, "integration.message.dispatch.1": { "kind": "integration-message", "id": "81000000-0000-4000-8000-000000000001", "integrationId": "integration.oms.wms.dispatch", "aggregateId": "TEST-ORD-INT-001", "messageKey": "TEST-EVENT-INT-001" }, "integration.message.dispatch.2": { "kind": "integration-message", "id": "81000000-0000-4000-8000-000000000002", "integrationId": "integration.oms.wms.dispatch", "aggregateId": "TEST-ORD-INT-002", "messageKey": "TEST-EVENT-INT-002" }, "integration.inbox.message.1": { "kind": "integration-message", "id": "81000000-0000-4000-8000-000000000003", "integrationId": "integration.wms.oms.picking-result", "aggregateId": "TEST-PICK-INT-001", "messageKey": "TEST-EVENT-INBOX-001" }, "integration.attempt.failed.1": { "kind": "integration-attempt", "id": "82000000-0000-4000-8000-000000000001", "integrationId": "integration.oms.wms.dispatch", "state": "failed" }, "idem.integration.retry.001": { "kind": "idempotency-key", "value": "kbx-test-integration-retry-001" }, "provider.kis.price.success": { "kind": "provider-response", "providerId": "provider.kis.market-data", "datasetId": "dataset.kis.domestic-stock.current-price", "fixturePath": "tests/fixtures/providers/kis-current-price-success.json", "classification": "synthetic" }, "external-data.kis.cached.expired": { "kind": "external-data-cache", "datasetId": "dataset.kis.domestic-stock.current-price", "cacheKey": "TEST-KIS-005930", "receivedAt": "2026-08-08T08:59:50Z", "freshUntil": "2026-08-08T08:59:53Z", "usableUntil": "2026-08-08T08:59:53Z" }, "provider.opendart.company.success": { "kind": "provider-response", "providerId": "provider.opendart", "datasetId": "dataset.opendart.company-profile", "fixturePath": "tests/fixtures/providers/opendart-company-success.json", "classification": "synthetic" }, "external-data.opendart.cached.stale": { "kind": "external-data-cache", "datasetId": "dataset.opendart.company-profile", "cacheKey": "TEST-DART-001", "receivedAt": "2026-08-07T08:00:00Z", "freshUntil": "2026-08-08T08:00:00Z", "usableUntil": "2026-08-15T08:00:00Z" }, "idem.erp.item-price.001": { "kind": "idempotency-key", "value": "kbx-test-erp-item-price-001" }, "idem.oms.order-confirm.001": { "kind": "idempotency-key", "value": "KBX-TEST-ORDER-CONFIRM-001" } } }