@glubean/cli 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -2
- package/dist/commands/contracts.d.ts.map +1 -1
- package/dist/commands/contracts.js +28 -4
- package/dist/commands/contracts.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +267 -60
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +31 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +516 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/redact.d.ts.map +1 -1
- package/dist/commands/redact.js +32 -8
- package/dist/commands/redact.js.map +1 -1
- package/dist/commands/run.d.ts +110 -2
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +493 -43
- package/dist/commands/run.js.map +1 -1
- package/dist/lib/config.d.ts +267 -43
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +744 -149
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/env.d.ts +29 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/env.js +59 -0
- package/dist/lib/env.js.map +1 -0
- package/dist/lib/print-plan.d.ts +21 -0
- package/dist/lib/print-plan.d.ts.map +1 -0
- package/dist/lib/print-plan.js +108 -0
- package/dist/lib/print-plan.js.map +1 -0
- package/dist/lib/upload.d.ts +36 -1
- package/dist/lib/upload.d.ts.map +1 -1
- package/dist/lib/upload.js +126 -19
- package/dist/lib/upload.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +420 -27
- package/dist/main.js.map +1 -1
- package/package.json +15 -6
- package/templates/README.md +7 -13
- package/templates/demo/.env.example +7 -0
- package/templates/demo/.env.secrets.example +11 -0
- package/templates/demo/README.md +60 -0
- package/templates/demo/config/api.ts +24 -0
- package/templates/demo/gitignore.tpl +13 -0
- package/templates/demo/glubean.yaml +48 -0
- package/templates/demo/tests/api-flaky/search-flaky.test.ts +28 -0
- package/templates/demo/tests/api-stable/get-users.test.ts +30 -0
- package/templates/demo/tests/canary/synthetic-50pct-flaky.test.ts +23 -0
- package/templates/demo/tests/contracts/stable/users-contract.contract.ts +70 -0
- package/templates/demo/tsconfig.json +15 -0
- package/templates/AI-INSTRUCTIONS.md +0 -160
- package/templates/ci-config/ci.yaml +0 -13
- package/templates/ci-config/default.yaml +0 -9
- package/templates/ci-config/explore.yaml +0 -5
- package/templates/ci-config/staging.yaml +0 -9
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6EAA6E;AAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC,IAAI,IAAI;IAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEpD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,kBAAkB,EAAE,gEAAgE,CAAC;KAC5F,MAAM,CAAC,YAAY,EAAE,iDAAiD,CAAC;KACvE,MAAM,CAAC,SAAS,EAAE,0CAA0C,CAAC;KAC7D,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;KAC9D,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACnD,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;KAC9D,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC;QAChB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,yEAAyE,CAAC;KACtF,MAAM,CAAC,WAAW,EAAE,wDAAwD,CAAC;KAC7E,MAAM,CAAC,wBAAwB,EAAE,wDAAwD,CAAC;KAC1F,MAAM,CAAC,iBAAiB,EAAE,kEAAkE,EAAE,OAAO,EAAE,EAAE,CAAC;KAC1G,MAAM,CAAC,mBAAmB,EAAE,qDAAqD,EAAE,IAAI,CAAC;KACxF,MAAM,CAAC,mBAAmB,EAAE,gDAAgD,CAAC;KAC7E,MAAM,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;KAC/D,MAAM,CAAC,UAAU,EAAE,gDAAgD,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;KACtE,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;KACnD,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;KAC5D,MAAM,CAAC,sBAAsB,EAAE,2DAA2D,CAAC;KAC3F,MAAM,CAAC,mBAAmB,EAAE,iEAAiE,CAAC;KAC9F,MAAM,CAAC,gBAAgB,EAAE,kDAAkD,CAAC;KAC5E,MAAM,CAAC,mBAAmB,EAAE,+DAA+D,CAAC;KAC5F,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,EAAE,OAAO,EAAE,EAAE,CAAC;KACxF,MAAM,CAAC,eAAe,EAAE,+DAA+D,CAAC;KACxF,MAAM,CAAC,sBAAsB,EAAE,oEAAoE,CAAC;KACpG,MAAM,CAAC,qBAAqB,EAAE,uDAAuD,CAAC;KACtF,MAAM,CAAC,uBAAuB,EAAE,gDAAgD,CAAC;KACjF,MAAM,CAAC,MAAM,EAAE,mDAAmD,CAAC;KACnE,MAAM,CAAC,mBAAmB,EAAE,0DAA0D,CAAC;KACvF,MAAM,CAAC,uBAAuB,EAAE,8DAA8D,CAAC;KAC/F,MAAM,CAAC,kBAAkB,EAAE,kEAAkE,CAAC;KAC9F,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC;KACrD,MAAM,CAAC,wBAAwB,EAAE,kCAAkC,EAAE,OAAO,EAAE,EAAE,CAAC;KACjF,MAAM,CAAC,UAAU,EAAE,mDAAmD,CAAC;KACvE,MAAM,CAAC,gBAAgB,EAAE,sDAAsD,CAAC;KAChF,MAAM,CAAC,iBAAiB,EAAE,oDAAoD,CAAC;KAC/E,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;KACnD,MAAM,CACL,sBAAsB,EACtB,+KAA+K,CAChL;KACA,MAAM,CACL,0BAA0B,EAC1B,6LAA6L,CAC9L;KACA,MAAM,CACL,oBAAoB,EACpB,kHAAkH,CACnH;KACA,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAChC,0BAA0B;IAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC7D,CAAC,CAAE,OAAO,CAAC,MAAmB,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CACnD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1D;QACD,CAAC,CAAC,SAAS,CAAC;IAEd,kEAAkE;IAClE,IAAI,cAAc,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5D,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAChF,CAAC;IAED,gDAAgD;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC1C,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAChC,IAAI,YAAgC,CAAC;IACrC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACtB,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,MAAM,UAAU,CAAC,cAAc,EAAE;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpG,OAAO,EAAE,OAAO,CAAC,OAAuB;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ;QACR,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1E,UAAU;QACV,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ;QACR,YAAY;QACZ,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7E,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM;YACxB,CAAC,CAAE,OAAO,CAAC,IAAiB,CAAC,MAAM,CAAC,CAAC,GAA2B,EAAE,IAAY,EAAE,EAAE;gBAC9E,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,EAAE,GAAG,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC;YACR,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACpD,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,GAAG;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACpD,MAAM,CACL,uBAAuB,EACvB,+EAA+E,EAC/E,YAAY,CACb;KACA,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrE,MAAM,gBAAgB,CAAC;QACrB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,GAAG,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,uBAAuB,CAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,wEAAwE,CAAC;KACrF,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;KAC3E,MAAM,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAChF,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;KACrD,MAAM,CAAC,gBAAgB,EAAE,0DAA0D,CAAC;KACpF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC9B,MAAM,YAAY,CAAC,IAAI,EAAE;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAqC;KACtD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAChF,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC9B,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,2DAA2D,CAAC;KACzF,MAAM,CAAC,qBAAqB,EAAE,mDAAmD,CAAC;KAClF,MAAM,CAAC,UAAU,EAAE,+BAA+B,CAAC;KACnD,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,EAAE,OAAO,EAAE,EAAE,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC7D,CAAC,CAAE,OAAO,CAAC,MAAmB,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CACnD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1D;QACD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,aAAa,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAChF,MAAM,SAAS,GAAG,OAAO;KACtB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEtC,SAAS;KACN,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,0EAA0E,CAAC;KACvF,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;KAC7E,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,gBAAgB,CAAC;QACrB,MAAM,EAAE,OAAO,CAAC,MAA2D;QAC3E,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,uFAAuF;AAEvF,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAChF,MAAM,MAAM,GAAG,OAAO;KACnB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,MAAM;KACH,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,MAAM;KACH,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,oEAAoE;AACpE,SAAS,OAAO,CAAC,KAAa,EAAE,QAAkB;IAChD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAChD,eAAe,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;QAAS,CAAC;IACT,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED,6CAA6C;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glubean/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"glubean": "./bin/gb.js"
|
|
@@ -25,17 +25,26 @@
|
|
|
25
25
|
"@inquirer/prompts": "^7.0.0",
|
|
26
26
|
"archiver": "^7.0.0",
|
|
27
27
|
"dotenv": "^16.4.0",
|
|
28
|
-
"yaml": "^2.7.0",
|
|
29
28
|
"tsx": "^4.19.0",
|
|
30
|
-
"
|
|
29
|
+
"yaml": "^2.7.0",
|
|
30
|
+
"@glubean/sdk": "0.3.0",
|
|
31
31
|
"@glubean/redaction": "0.2.0",
|
|
32
|
-
"@glubean/
|
|
33
|
-
"@glubean/
|
|
32
|
+
"@glubean/runner": "0.3.0",
|
|
33
|
+
"@glubean/scanner": "0.3.0"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"typescript": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"peerDependenciesMeta": {
|
|
39
|
+
"typescript": {
|
|
40
|
+
"optional": true
|
|
41
|
+
}
|
|
34
42
|
},
|
|
35
43
|
"devDependencies": {
|
|
36
44
|
"@types/node": "^22.0.0",
|
|
37
45
|
"@types/archiver": "^6.0.0",
|
|
38
|
-
"
|
|
46
|
+
"typescript": "^5.9.3",
|
|
47
|
+
"@glubean/graphql": "0.2.4"
|
|
39
48
|
},
|
|
40
49
|
"repository": {
|
|
41
50
|
"type": "git",
|
package/templates/README.md
CHANGED
|
@@ -55,10 +55,9 @@ npm install
|
|
|
55
55
|
3. Run tests:
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
npm test # run
|
|
59
|
-
npm run test:
|
|
60
|
-
npm run
|
|
61
|
-
npm run explore # run explore/ tests
|
|
58
|
+
npm test # run the `local` profile from glubean.yaml
|
|
59
|
+
npm run test:ci # run the `ci` profile (failFast + junit + result.json)
|
|
60
|
+
npm run explore # run the `explore` profile (./explore tests)
|
|
62
61
|
```
|
|
63
62
|
|
|
64
63
|
Or run a specific file:
|
|
@@ -69,19 +68,14 @@ npx glubean run tests/demo.test.ts --verbose
|
|
|
69
68
|
|
|
70
69
|
## Environment switching
|
|
71
70
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
| Env file | Secrets file | Script shortcut |
|
|
75
|
-
| -------------- | ---------------------- | ------------------------ |
|
|
76
|
-
| `.env` | `.env.secrets` | `npm test` |
|
|
77
|
-
| `.env.staging` | `.env.staging.secrets` | `npm run test:staging` |
|
|
78
|
-
|
|
79
|
-
To add more environments (e.g. production), create `.env.production` and `.env.production.secrets`, then run:
|
|
71
|
+
Add a staging environment by creating `.env.staging` + `.env.staging.secrets`, then run:
|
|
80
72
|
|
|
81
73
|
```bash
|
|
82
|
-
npx glubean run --env-file .env.
|
|
74
|
+
npx glubean run --env-file .env.staging
|
|
83
75
|
```
|
|
84
76
|
|
|
77
|
+
To make staging the default for a run, switch the project's `defaults.envFile` in `glubean.yaml` (the loader only accepts `envFile` under `defaults`, not under a profile). For repeated use of the `--env-file` CLI flag, alias it in an npm script.
|
|
78
|
+
|
|
85
79
|
All `*.secrets` files are gitignored by default. The non-secret `.env.*` files can be committed safely.
|
|
86
80
|
|
|
87
81
|
## AI-assisted test writing
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Glubean demo project — non-secret vars. Copy to .env (gitignored).
|
|
2
|
+
# Loaded into ctx.vars and {{VAR}} template substitution.
|
|
3
|
+
|
|
4
|
+
# URL of the mock backend (glubean-demo-backend). Replace with your
|
|
5
|
+
# deployed Cloudflare Workers URL. The stable/flaky tests + the stable
|
|
6
|
+
# contract all point at this.
|
|
7
|
+
MOCK_BACKEND_URL=https://demo-backend.example.com
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Glubean demo project — secrets. Copy to .env.secrets (gitignored).
|
|
2
|
+
# Loaded into ctx.secrets and auto-redacted in traces.
|
|
3
|
+
|
|
4
|
+
# Cloud upload token — only for the opt-in upload flow:
|
|
5
|
+
# glubean run --profile full --upload --project <your-project>
|
|
6
|
+
# `npm test` / `npm run test:full` run fully local and need none of this.
|
|
7
|
+
GLUBEAN_TOKEN=
|
|
8
|
+
|
|
9
|
+
# Optional — only if your glubean-demo-backend enforces the caller-key
|
|
10
|
+
# rate tier. Set this AND uncomment the headers line in config/api.ts.
|
|
11
|
+
# DEMO_BACKEND_CALLER_KEY=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Glubean public demo project
|
|
2
|
+
|
|
3
|
+
A runnable demo that produces **real** flaky / regression data — not
|
|
4
|
+
contrived examples. Generated by `glubean init --template demo`. Pairs
|
|
5
|
+
with the `glubean-demo-backend` service (a small Cloudflare Worker with
|
|
6
|
+
deliberate failure modes).
|
|
7
|
+
|
|
8
|
+
## The narrative
|
|
9
|
+
|
|
10
|
+
Three independent data sources, each telling one story. Any one
|
|
11
|
+
breaking doesn't affect the others.
|
|
12
|
+
|
|
13
|
+
| Suite | Source | Story |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `api-stable` | mock backend `/api/stable/*` (deterministic 200) | "Stable suite stays green over time" |
|
|
16
|
+
| `api-flaky` | mock backend `/api/flaky/*` (~30% 503) | "Glubean detects this API is flaky" |
|
|
17
|
+
| `contracts-stable` | mock backend stable shape | "Contract guards the API shape" |
|
|
18
|
+
| `canary` | in-process `Math.random()` (~50% pass) | "The run/reduce pipeline is alive — independent of any backend" |
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
| Command | Profile | Suites | Result |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| `npm test` | `local` | api-stable, contracts-stable | Always green (safe for a fresh clone) |
|
|
25
|
+
| `npm run test:full` | `full` | + api-flaky, canary | Intermittently non-zero exit BY DESIGN — that's the point |
|
|
26
|
+
|
|
27
|
+
`test:full` runs **fully local** — no cloud account, no upload. To
|
|
28
|
+
publish results to a dashboard, run `glubean login` once then
|
|
29
|
+
`glubean run --profile full --upload --project <your-project>`.
|
|
30
|
+
|
|
31
|
+
## Setup
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cp .env.example .env # set MOCK_BACKEND_URL to your glubean-demo-backend
|
|
35
|
+
npm install
|
|
36
|
+
npm test # local profile — green
|
|
37
|
+
npm run test:full # full narrative — flaky + canary intermittently fail
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`MOCK_BACKEND_URL` lives in `.env` (loaded into `ctx.vars` + `{{VAR}}`
|
|
41
|
+
templates). The HTTP client is configured once in
|
|
42
|
+
[`config/api.ts`](config/api.ts) and imported by every test + contract —
|
|
43
|
+
it auto-traces and auto-redacts requests, so the dashboard shows the
|
|
44
|
+
actual calls with zero hand-written client code.
|
|
45
|
+
|
|
46
|
+
`.env.secrets` (gitignored) is only needed for the opt-in `--upload`
|
|
47
|
+
flow — put `GLUBEAN_TOKEN` there.
|
|
48
|
+
|
|
49
|
+
## Notes
|
|
50
|
+
|
|
51
|
+
- **Retry is off by default.** The runner doesn't auto-retry 5xx — a
|
|
52
|
+
verification test reports what the server actually returned (that's
|
|
53
|
+
how the flaky suite catches 503s). Need resilience for a specific
|
|
54
|
+
call? Pass `http.get(url, { retry: 2 })`, or set it for the whole
|
|
55
|
+
shared client in `config/api.ts` via `configure({ http: { retry } })`.
|
|
56
|
+
- **Why a self-hosted mock backend?** Third-party public APIs (httpbin,
|
|
57
|
+
jsonplaceholder) are deliberately stable — they can't produce a
|
|
58
|
+
believable "this API is flaky 30% of the time" story. The companion
|
|
59
|
+
`glubean-demo-backend` provides controlled failure modes that simulate
|
|
60
|
+
real production scenarios. See `glubean/docs/05-demo-project-design.zh.md`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { configure } from "@glubean/sdk";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Single shared HTTP client for the demo's mock backend.
|
|
5
|
+
*
|
|
6
|
+
* Per the Glubean project-structure convention: call `configure()`
|
|
7
|
+
* ONCE here and import `http` into every test + contract — don't
|
|
8
|
+
* repeat configure() per file. `prefixUrl` resolves {{MOCK_BACKEND_URL}}
|
|
9
|
+
* from .env at run time; the client auto-traces + auto-redacts every
|
|
10
|
+
* request.
|
|
11
|
+
*
|
|
12
|
+
* Optional caller key: if your deployed glubean-demo-backend enforces
|
|
13
|
+
* the caller-key rate tier (verified 60/min vs anonymous 10/min), set
|
|
14
|
+
* DEMO_BACKEND_CALLER_KEY in .env.secrets and uncomment the `headers`
|
|
15
|
+
* line below. Left off by default so a fresh scaffold runs zero-config
|
|
16
|
+
* — a `{{...}}` header throws if the secret is empty/unset, and the
|
|
17
|
+
* anonymous tier is plenty for occasional local runs.
|
|
18
|
+
*/
|
|
19
|
+
export const { http } = configure({
|
|
20
|
+
http: {
|
|
21
|
+
prefixUrl: "{{MOCK_BACKEND_URL}}",
|
|
22
|
+
// headers: { "x-demo-caller-key": "{{DEMO_BACKEND_CALLER_KEY}}" },
|
|
23
|
+
},
|
|
24
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
|
|
3
|
+
defaults:
|
|
4
|
+
redaction:
|
|
5
|
+
replacementFormat: simple
|
|
6
|
+
|
|
7
|
+
suites:
|
|
8
|
+
# Deterministic — always green. Backs the "stable stays green" story.
|
|
9
|
+
api-stable:
|
|
10
|
+
target: ./tests/api-stable
|
|
11
|
+
kinds: [test]
|
|
12
|
+
# Probabilistic 503 from the mock backend. Backs the "Glubean detects
|
|
13
|
+
# flaky" story — intentionally non-deterministic.
|
|
14
|
+
api-flaky:
|
|
15
|
+
target: ./tests/api-flaky
|
|
16
|
+
kinds: [test]
|
|
17
|
+
# Contract guarding the stable API shape. Always green.
|
|
18
|
+
contracts-stable:
|
|
19
|
+
target: ./tests/contracts/stable
|
|
20
|
+
kinds: [contract]
|
|
21
|
+
# 100% in-process Math.random() canary — proves the run/reduce
|
|
22
|
+
# pipeline itself is alive, independent of any backend.
|
|
23
|
+
canary:
|
|
24
|
+
target: ./tests/canary
|
|
25
|
+
kinds: [test]
|
|
26
|
+
|
|
27
|
+
profiles:
|
|
28
|
+
# `npm test` — only deterministic suites, so a fresh clone runs green.
|
|
29
|
+
local:
|
|
30
|
+
suites: [api-stable, contracts-stable]
|
|
31
|
+
|
|
32
|
+
# `npm run test:full` — the complete suite incl. flaky + canary. Exit
|
|
33
|
+
# code is intermittently non-zero BY DESIGN (that's the point — you
|
|
34
|
+
# SEE Glubean catch flaky/degrading behavior). Runs fully local; no
|
|
35
|
+
# upload, no cloud account needed.
|
|
36
|
+
#
|
|
37
|
+
# To publish results to a Glubean project dashboard, run
|
|
38
|
+
# `glubean login` once, then `glubean run --profile full --upload
|
|
39
|
+
# --project <your-project>` (or add an `upload:` block here with your
|
|
40
|
+
# projectAlias). Kept opt-in so a fresh scaffold runs with zero config.
|
|
41
|
+
full:
|
|
42
|
+
suites: [api-stable, api-flaky, contracts-stable, canary]
|
|
43
|
+
execution:
|
|
44
|
+
failFast: false
|
|
45
|
+
concurrency: 3
|
|
46
|
+
reporters:
|
|
47
|
+
console: summary
|
|
48
|
+
resultJson: .glubean/results/full.result.json
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { test } from "@glubean/sdk";
|
|
2
|
+
import { http } from "../../config/api.ts";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Flaky suite — hits the mock backend's /api/flaky/search endpoint,
|
|
6
|
+
* which returns 503 ~30% of the time by design. Asserting 200 makes
|
|
7
|
+
* the failures surface as real flaky data the dashboard classifies
|
|
8
|
+
* (stable test, intermittent fail).
|
|
9
|
+
*
|
|
10
|
+
* Non-2xx doesn't throw (throwHttpErrors defaults false) and the
|
|
11
|
+
* runner defaults retry to 0, so each raw 503 fails the test — no
|
|
12
|
+
* try/catch, no custom client. (If your runner predates the retry:0
|
|
13
|
+
* default, add `retry: 0` to the get() options here.)
|
|
14
|
+
*
|
|
15
|
+
* NOT in the `local` profile — `npm test` stays green. Only
|
|
16
|
+
* `npm run test:full` includes it.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export const flakySearch = test(
|
|
20
|
+
{ id: "flaky-search", tags: ["flaky", "public-demo"] },
|
|
21
|
+
async ({ expect }) => {
|
|
22
|
+
const res = await http.get("api/flaky/search", {
|
|
23
|
+
searchParams: { q: "glubean" },
|
|
24
|
+
});
|
|
25
|
+
// ~30% of runs return 503 by design; this assertion fails on those.
|
|
26
|
+
expect(res).toHaveStatus(200);
|
|
27
|
+
},
|
|
28
|
+
);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { test } from "@glubean/sdk";
|
|
2
|
+
import { http } from "../../config/api.ts";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Stable suite — hits the mock backend's deterministic /api/stable
|
|
6
|
+
* endpoints. Always passes; the "everything's working" baseline.
|
|
7
|
+
* Uses the shared client from config/api.ts (auto-traced).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const listUsers = test(
|
|
11
|
+
{ id: "stable-list-users", tags: ["stable", "public-demo"] },
|
|
12
|
+
async ({ expect }) => {
|
|
13
|
+
const res = await http.get("api/stable/users");
|
|
14
|
+
expect(res).toHaveStatus(200);
|
|
15
|
+
const body = await res.json<{ users: unknown[]; total: number }>();
|
|
16
|
+
expect(Array.isArray(body.users)).toBe(true);
|
|
17
|
+
expect(body.total).toBe(3);
|
|
18
|
+
},
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
export const getOneUser = test(
|
|
22
|
+
{ id: "stable-get-user", tags: ["stable", "public-demo"] },
|
|
23
|
+
async ({ expect }) => {
|
|
24
|
+
const res = await http.get("api/stable/users/u_001");
|
|
25
|
+
expect(res).toHaveStatus(200);
|
|
26
|
+
const body = await res.json<{ id: string; name: string; email: string }>();
|
|
27
|
+
expect(body.id).toBe("u_001");
|
|
28
|
+
expect(body.email).toContain("@");
|
|
29
|
+
},
|
|
30
|
+
);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { test } from "@glubean/sdk";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Synthetic canary — 100% in-process, no backend. A coin flip on
|
|
5
|
+
* Math.random() means this passes ~50% of runs. Its only job is to
|
|
6
|
+
* prove the run → reduce → dashboard pipeline is alive end-to-end,
|
|
7
|
+
* independent of any external service. If the mock backend is down,
|
|
8
|
+
* this canary still produces flaky data.
|
|
9
|
+
*
|
|
10
|
+
* Intentionally only in the `public-demo` profile — never `npm test`.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export const syntheticFlaky = test(
|
|
14
|
+
{ id: "canary-synthetic-50pct", tags: ["canary", "public-demo"] },
|
|
15
|
+
async (ctx) => {
|
|
16
|
+
const roll = Math.random();
|
|
17
|
+
ctx.log(`synthetic canary roll = ${roll.toFixed(3)} (passes if < 0.5)`);
|
|
18
|
+
ctx.assert(
|
|
19
|
+
roll < 0.5,
|
|
20
|
+
"synthetic 50/50 canary — non-deterministic by design (proves the pipeline is live)",
|
|
21
|
+
);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { contract } from "@glubean/sdk";
|
|
2
|
+
import type { SchemaLike } from "@glubean/sdk";
|
|
3
|
+
import { http } from "../../../config/api.ts";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Stable contract — guards the shape of the mock backend's
|
|
7
|
+
* /api/stable/users endpoint. Always green; if the backend ever
|
|
8
|
+
* changes this shape (drops/renames `users` or `total`), the contract
|
|
9
|
+
* fails and the dashboard shows a contract violation.
|
|
10
|
+
*
|
|
11
|
+
* Reuses the shared client from config/api.ts — same backend as the
|
|
12
|
+
* api-stable suite, configured once.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const stableApi = contract.http.with("demo-stable", {
|
|
16
|
+
client: http,
|
|
17
|
+
security: null,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
interface UsersResponse {
|
|
21
|
+
users: Array<{ id: string; name: string; email: string }>;
|
|
22
|
+
total: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Hand-rolled SchemaLike so the demo project needs no zod dependency.
|
|
26
|
+
// Validates the documented shape, not just the status — a 200 that
|
|
27
|
+
// dropped `users`/`total` must still fail this contract.
|
|
28
|
+
const usersResponseSchema: SchemaLike<UsersResponse> = {
|
|
29
|
+
safeParse(data: unknown) {
|
|
30
|
+
const d = data as Partial<UsersResponse> | null;
|
|
31
|
+
const issues: Array<{ message: string }> = [];
|
|
32
|
+
if (!d || typeof d !== "object") {
|
|
33
|
+
issues.push({ message: "response is not an object" });
|
|
34
|
+
} else {
|
|
35
|
+
if (!Array.isArray(d.users)) {
|
|
36
|
+
issues.push({ message: "`users` is missing or not an array" });
|
|
37
|
+
} else if (
|
|
38
|
+
!d.users.every(
|
|
39
|
+
(u) =>
|
|
40
|
+
u &&
|
|
41
|
+
typeof u.id === "string" &&
|
|
42
|
+
typeof u.name === "string" &&
|
|
43
|
+
typeof u.email === "string",
|
|
44
|
+
)
|
|
45
|
+
) {
|
|
46
|
+
issues.push({ message: "each user must have string id/name/email" });
|
|
47
|
+
}
|
|
48
|
+
if (typeof d.total !== "number") {
|
|
49
|
+
issues.push({ message: "`total` is missing or not a number" });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return issues.length === 0
|
|
53
|
+
? { success: true, data: data as UsersResponse }
|
|
54
|
+
: { success: false, error: { issues } };
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// @contract
|
|
59
|
+
export const usersContract = stableApi("stable-users-shape", {
|
|
60
|
+
endpoint: "GET /api/stable/users",
|
|
61
|
+
feature: "Demo / Stable API",
|
|
62
|
+
description: "The stable users endpoint keeps its documented shape",
|
|
63
|
+
tags: ["stable", "public-demo"],
|
|
64
|
+
cases: {
|
|
65
|
+
ok: {
|
|
66
|
+
description: "returns 200 with a users array and total count",
|
|
67
|
+
expect: { status: 200, schema: usersResponseSchema },
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "Bundler",
|
|
6
|
+
"strict": true,
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"resolveJsonModule": true,
|
|
10
|
+
"noEmit": true,
|
|
11
|
+
"allowImportingTsExtensions": true
|
|
12
|
+
},
|
|
13
|
+
"include": ["**/*.ts"],
|
|
14
|
+
"exclude": ["node_modules"]
|
|
15
|
+
}
|