373 lines
10 KiB
JSON
373 lines
10 KiB
JSON
{
|
|
"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"
|
|
}
|
|
}
|
|
}
|