bingo-stratum-testers 0.5.7 → 0.5.9

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/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { testBlock } from "./testBlock.js";
2
+ export { testIntake } from "./testIntake.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
package/lib/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { testBlock } from "./testBlock.js";
2
+ export { testIntake } from "./testIntake.js";
2
3
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -6,10 +6,25 @@ export interface BlockContextSettingsWithOptionalAddons<Addons extends object, O
6
6
  addons?: Partial<Addons>;
7
7
  }
8
8
  export interface BlockContextSettingsWithoutAddons<Options extends object> {
9
+ /**
10
+ * Which repository mode Bingo to simulate being run in.
11
+ * @see {@link https://create.bingo/build/concepts/modes}
12
+ */
9
13
  mode?: ProductionMode;
14
+ /**
15
+ * Whether to simulate being run in an "offline" mode.
16
+ * @see {@link http://create.bingo/build/details/contexts#options-offline}
17
+ */
10
18
  offline?: boolean;
19
+ /**
20
+ * Any options values as described by the Block's Base's options schema, as well as preset.
21
+ */
11
22
  options?: Options & StratumTemplateOptions;
12
23
  }
24
+ /**
25
+ * Simulates running a Block in-memory for tests.
26
+ * @see {@link https://www.create.bingo/engines/stratum/packages/bingo-stratum-testers/#testblock}
27
+ */
13
28
  export declare function testBlock<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: BlockContextSettingsWithOptionalAddons<Addons, Options>): Partial<BlockCreation<Options>>;
14
29
  export declare function testBlock<Options extends object>(block: BlockWithoutAddons<Options>, settings?: BlockContextSettingsWithoutAddons<Options>): Partial<BlockCreation<Options>>;
15
30
  //# sourceMappingURL=testBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testBlock.d.ts","sourceRoot":"","sources":["../src/testBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EACN,eAAe,EACf,kBAAkB,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,MAAM,WAAW,sCAAsC,CACtD,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,iCAAiC,CAAC,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC,CAAC,OAAO,SAAS,MAAM;IACxE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC3C;AAED,wBAAgB,SAAS,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACtE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,sCAAsC,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/D,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,wBAAgB,SAAS,CAAC,OAAO,SAAS,MAAM,EAC/C,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,QAAQ,CAAC,EAAE,iCAAiC,CAAC,OAAO,CAAC,GACnD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"testBlock.d.ts","sourceRoot":"","sources":["../src/testBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EACN,eAAe,EACf,kBAAkB,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,MAAM,WAAW,sCAAsC,CACtD,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,iCAAiC,CAAC,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC,CAAC,OAAO,SAAS,MAAM;IACxE;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACtE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,sCAAsC,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/D,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,wBAAgB,SAAS,CAAC,OAAO,SAAS,MAAM,EAC/C,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,QAAQ,CAAC,EAAE,iCAAiC,CAAC,OAAO,CAAC,GACnD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC"}
package/lib/testBlock.js CHANGED
@@ -2,9 +2,10 @@ import { produceBlock, } from "bingo-stratum";
2
2
  import { createFailingObject } from "./utils.js";
3
3
  export function testBlock(block, settings = {}) {
4
4
  return produceBlock(block, {
5
- addons: {},
6
- options: createFailingObject("options", "the Block"),
7
5
  ...settings,
6
+ addons: settings.addons ?? {},
7
+ options: settings.options ??
8
+ createFailingObject("options", "the Block"),
8
9
  });
9
10
  }
10
11
  //# sourceMappingURL=testBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testBlock.js","sourceRoot":"","sources":["../src/testBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,YAAY,GAEZ,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAuBjD,MAAM,UAAU,SAAS,CACxB,KAAqE,EACrE,WAAoE,EAAE;IAEtE,OAAO,YAAY,CAClB,KAAyC,EACzC;QACC,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAY;QAC/D,GAAG,QAAQ;KACwC,CACpD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"testBlock.js","sourceRoot":"","sources":["../src/testBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,YAAY,GAEZ,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAwCjD,MAAM,UAAU,SAAS,CACxB,KAAqE,EACrE,WAAoE,EAAE;IAEtE,OAAO,YAAY,CAClB,KAAyC,EACzC;QACC,GAAG,QAAQ;QACX,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;QAC7B,OAAO,EACN,QAAQ,CAAC,OAAO;YACf,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAa;KACN,CACpD,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { IntakeDirectory } from "bingo-fs";
2
+ import { BlockWithAddons } from "bingo-stratum";
3
+ import { StratumTemplateOptions } from "bingo-stratum/lib/types/templates.js";
4
+ export interface TestIntakeSettings<Options extends object> {
5
+ /**
6
+ * Existing file creations, if available.
7
+ */
8
+ files: IntakeDirectory;
9
+ /**
10
+ * Any options values as described by the Block's Base's options schema, as well as preset.
11
+ */
12
+ options?: Options & StratumTemplateOptions;
13
+ }
14
+ /**
15
+ * Simulates running a Block's intake in-memory for tests.
16
+ * @see {@link https://www.create.bingo/engines/stratum/packages/bingo-stratum-testers/#testintake}
17
+ */
18
+ export declare function testIntake<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: TestIntakeSettings<Options>): Partial<Addons> | undefined;
19
+ //# sourceMappingURL=testIntake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testIntake.d.ts","sourceRoot":"","sources":["../src/testIntake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM;IACzD;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACvE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAO7B"}
@@ -0,0 +1,13 @@
1
+ import { createFailingObject } from "./utils.js";
2
+ /**
3
+ * Simulates running a Block's intake in-memory for tests.
4
+ * @see {@link https://www.create.bingo/engines/stratum/packages/bingo-stratum-testers/#testintake}
5
+ */
6
+ export function testIntake(block, settings) {
7
+ return block.intake?.({
8
+ ...settings,
9
+ options: settings.options ??
10
+ createFailingObject("options", "the Block"),
11
+ });
12
+ }
13
+ //# sourceMappingURL=testIntake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testIntake.js","sourceRoot":"","sources":["../src/testIntake.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAcjD;;;GAGG;AACH,MAAM,UAAU,UAAU,CACzB,KAAuC,EACvC,QAAqC;IAErC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,GAAG,QAAQ;QACX,OAAO,EACN,QAAQ,CAAC,OAAO;YACf,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAa;KACzD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=testIntake.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testIntake.test.d.ts","sourceRoot":"","sources":["../src/testIntake.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { createBase } from "bingo-stratum";
2
+ import { describe, expect, it } from "vitest";
3
+ import { z } from "zod";
4
+ import { testIntake } from "./testIntake.js";
5
+ const base = createBase({
6
+ options: {
7
+ value: z.string(),
8
+ },
9
+ });
10
+ describe("testIntake", () => {
11
+ it("returns undefined when the Block doesn't define an intake", () => {
12
+ const block = base.createBlock({
13
+ addons: {
14
+ value: z.string().optional(),
15
+ },
16
+ produce() {
17
+ return {};
18
+ },
19
+ });
20
+ const actual = testIntake(block, { files: {} });
21
+ expect(actual).toBeUndefined();
22
+ });
23
+ it("returns the intake result when the Block defines an intake", () => {
24
+ const block = base.createBlock({
25
+ addons: {
26
+ value: z.string().optional(),
27
+ },
28
+ intake({ files }) {
29
+ return {
30
+ value: files["value.txt"][0],
31
+ };
32
+ },
33
+ produce() {
34
+ return {};
35
+ },
36
+ });
37
+ const value = "abc";
38
+ const actual = testIntake(block, {
39
+ files: {
40
+ "value.txt": [value],
41
+ },
42
+ });
43
+ expect(actual).toEqual({ value });
44
+ });
45
+ describe("options", () => {
46
+ const blockUsingOptions = base.createBlock({
47
+ addons: {
48
+ extra: z.string().optional(),
49
+ },
50
+ intake({ options }) {
51
+ return {
52
+ extra: options.value + "!",
53
+ };
54
+ },
55
+ produce() {
56
+ return {};
57
+ },
58
+ });
59
+ it("throws an error when options isn't provided and a block uses options", () => {
60
+ expect(() => testIntake(blockUsingOptions, {
61
+ files: {},
62
+ })).toThrowErrorMatchingInlineSnapshot(`[Error: Context property 'options' was used by the Block but not provided.]`);
63
+ });
64
+ it("passes options to the block when provided", () => {
65
+ const actual = testIntake(blockUsingOptions, {
66
+ files: {},
67
+ options: { preset: "test", value: "abc" },
68
+ });
69
+ expect(actual).toEqual({
70
+ extra: "abc!",
71
+ });
72
+ });
73
+ });
74
+ });
75
+ //# sourceMappingURL=testIntake.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testIntake.test.js","sourceRoot":"","sources":["../src/testIntake.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingo-stratum-testers",
3
- "version": "0.5.7",
3
+ "version": "0.5.9",
4
4
  "description": "Test utilities for Stratum Blocks and Presets. 🧑‍🔧",
5
5
  "homepage": "https://www.create.bingo/engines/stratum/packages/bingo-stratum-testers",
6
6
  "repository": {
@@ -25,11 +25,11 @@
25
25
  "zod": "3.24.2"
26
26
  },
27
27
  "peerDependencies": {
28
- "bingo": "^0.5.10",
29
- "bingo-stratum": "^0.5.7",
30
- "bingo-fs": "^0.5.4",
31
- "bingo-testers": "^0.5.7",
32
- "bingo-systems": "^0.5.4"
28
+ "bingo-fs": "^0.5.5",
29
+ "bingo-stratum": "^0.5.11",
30
+ "bingo": "^0.5.14",
31
+ "bingo-systems": "^0.5.4",
32
+ "bingo-testers": "^0.5.7"
33
33
  },
34
34
  "engines": {
35
35
  "node": ">=18"