Files
KArtSell.Aegis/docs/Design/kbx-foundation-v36/contracts/testing/kbx.test-fixtures.json
T

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"
}
}
}