콘텐츠로 이동

jobRunStoreContractCases — @gj-kit/nest-operations-jobs

@gj-kit/nest-operations-jobs/testing에서 공개하는 function입니다. package version 0.1.1의 release declaration을 그대로 표시합니다.

import { jobRunStoreContractCases } from '@gj-kit/nest-operations-jobs/testing';
/**
* The executable form of the S1-S7 obligations. Deliberately framework-free:
* it returns cases instead of calling `describe`/`it`, so a host can drive them
* from vitest, jest or `node:test` without this package depending on any of them.
*
* **Safe against a persistent store.** Every call mints a fresh key namespace and
* prefixes every `jobKey`/`overlapKey` with it, and every reap the cases issue is
* scoped to that namespace. So one shared store instance can drive the whole
* array, the same table can be reused across CI runs without truncation, and no
* case can move a row belonging to a job this suite never touched. Rows the
* cases leave behind are inert: a later call uses different keys.
*
* ```ts
* for (const testCase of jobRunStoreContractCases()) {
* it(testCase.name, async () => { await testCase.run(appStore); });
* }
* ```
*/
declare function jobRunStoreContractCases(options?: JobRunStoreContractOptions): readonly JobRunStoreContractCase[];

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

  • 패키지: @gj-kit/nest-operations-jobs
  • 버전: 0.1.1
  • 공개 entry: ./testing
  • 소스: GitHub

The executable form of the S1-S7 obligations. Deliberately framework-free: it returns cases instead of calling describe/it, so a host can drive them from vitest, jest or node:test without this package depending on any of them.

Safe against a persistent store. Every call mints a fresh key namespace and prefixes every jobKey/overlapKey with it, and every reap the cases issue is scoped to that namespace. So one shared store instance can drive the whole array, the same table can be reused across CI runs without truncation, and no case can move a row belonging to a job this suite never touched. Rows the cases leave behind are inert: a later call uses different keys.

for (const testCase of jobRunStoreContractCases()) {
it(testCase.name, async () => { await testCase.run(appStore); });
}