@saasquatch/program-test-suite 2.1.1 → 2.1.2-2

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 ADDED
@@ -0,0 +1,45 @@
1
+ # SaaSquatch Program Test Suite
2
+
3
+ This package contains everything needed to facilitate blackbox unit testing of the
4
+ SaaSquatch programs. It includes a family of default Cucumber step definitions and tools
5
+ for simulated execution of the programs.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install -D @saasquatch/program-test-suite
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ The program test suite is based on Jest. Place the following inside your Jest config:
16
+
17
+ ```typescript
18
+ import { jestConfig } from "@saasquatch/program-test-suite";
19
+ export default jestConfig;
20
+ ```
21
+
22
+ Use the `runProgramTests` function to execute the tests. Here is an example of a typical
23
+ test program:
24
+
25
+ ```typescript
26
+ // Import your program from the source code. This is a `types.rpc.Program` that you would
27
+ // pass to program-boilerplate
28
+ import { program } from "../src/program";
29
+ import { runProgramTests } from "@saasquatch/program-test-suite";
30
+
31
+ // Any additional custom steps you need for this particular program
32
+ import steps from "./steps";
33
+
34
+ runProgramTests(
35
+ program,
36
+ // Path to the .feature files containing the unit test steps
37
+ "__tests__/features/unit",
38
+ steps,
39
+ // Path to the program schema
40
+ "src/schema/birthday-program_schema.json",
41
+ // Default program template and program rules to use while testing
42
+ "__tests__/defaults/template.json",
43
+ "__tests__/defaults/rules.json"
44
+ );
45
+ ```
package/dist/faker.d.ts CHANGED
@@ -12,7 +12,7 @@ declare type ProgramTriggerInfo = {
12
12
  rules: any;
13
13
  };
14
14
  export declare function getProgramTriggerJson(info: ProgramTriggerInfo): ProgramTriggerBody;
15
- export declare function getAUCOUTJson(prev?: any, events?: any[]): any;
15
+ export declare function getAUCOUTJson(previous?: any, events?: any[]): any;
16
16
  export declare function getReferralJson(referralEventType: any, referral: any): any;
17
17
  export declare function getAUEPTJson(events?: any[]): any;
18
18
  export declare function getRandomUser(name: string): any;
package/dist/faker.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -51,11 +55,12 @@ function getIntrospectionJson(template, rules, rewards) {
51
55
  }
52
56
  exports.getIntrospectionJson = getIntrospectionJson;
53
57
  function getProgramTriggerJson(info) {
58
+ var _a;
54
59
  return {
55
60
  messageType: "PROGRAM_TRIGGER",
56
61
  activeTrigger: {
57
62
  type: info.type,
58
- time: info.time || Date.now(),
63
+ time: (_a = info.time) !== null && _a !== void 0 ? _a : Date.now(),
59
64
  user: info.user,
60
65
  },
61
66
  program: {
@@ -71,11 +76,11 @@ function getProgramTriggerJson(info) {
71
76
  };
72
77
  }
73
78
  exports.getProgramTriggerJson = getProgramTriggerJson;
74
- function getAUCOUTJson(prev, events) {
79
+ function getAUCOUTJson(previous, events) {
75
80
  return {
76
81
  activeTrigger: {
77
82
  events,
78
- prev,
83
+ previous,
79
84
  },
80
85
  };
81
86
  }
package/dist/faker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"faker.js","sourceRoot":"","sources":["../src/faker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"faker.js","sourceRoot":"","sources":["../src/faker.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { StepDefinitions } from "jest-cucumber";
2
1
  import { types } from "@saasquatch/program-boilerplate";
2
+ import { StepDefinitions } from "jest-cucumber";
3
3
  export { default as jestConfig } from "./jest.config";
4
4
  export { getWorld } from "./world";
5
5
  export declare function runProgramTests(program: types.rpc.Program, featurePath: string, steps: StepDefinitions[], schemaFile: string, templateFile: string, rulesFile: string, featureFilterTags?: string[]): void;
package/dist/index.js CHANGED
@@ -6,24 +6,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.runProgramTests = exports.getWorld = exports.jestConfig = void 0;
7
7
  const glob_1 = require("glob");
8
8
  const jest_cucumber_1 = require("jest-cucumber");
9
- const world_1 = require("./world");
10
9
  const steps_1 = __importDefault(require("./steps"));
10
+ const world_1 = require("./world");
11
11
  var jest_config_1 = require("./jest.config");
12
12
  Object.defineProperty(exports, "jestConfig", { enumerable: true, get: function () { return __importDefault(jest_config_1).default; } });
13
13
  var world_2 = require("./world");
14
14
  Object.defineProperty(exports, "getWorld", { enumerable: true, get: function () { return world_2.getWorld; } });
15
15
  function runProgramTests(program, featurePath, steps, schemaFile, templateFile, rulesFile, featureFilterTags) {
16
- world_1.World.setProgram(program);
17
- world_1.World.loadDefaults(templateFile, schemaFile, rulesFile);
16
+ (0, world_1.getWorld)().setProgram(program);
17
+ (0, world_1.getWorld)().loadDefaults(templateFile, schemaFile, rulesFile);
18
18
  const features = [];
19
- const featureFiles = glob_1.sync(`${featurePath}/**/*.feature`);
19
+ const featureFiles = (0, glob_1.sync)(`${featurePath}/**/*.feature`);
20
20
  if (!featureFiles.length) {
21
21
  throw new Error(`No feature files found at path "${featurePath}"`);
22
22
  }
23
23
  for (let featureFile of featureFiles) {
24
24
  try {
25
- const feature = jest_cucumber_1.loadFeature(featureFile);
26
- const keep = (featureFilterTags === null || featureFilterTags === void 0 ? void 0 : featureFilterTags.length) ? featureFilterTags.every((tag) => feature.tags.includes(tag))
25
+ const feature = (0, jest_cucumber_1.loadFeature)(featureFile);
26
+ const keep = (featureFilterTags === null || featureFilterTags === void 0 ? void 0 : featureFilterTags.length)
27
+ ? featureFilterTags.every((tag) => feature.tags.includes(tag))
27
28
  : true;
28
29
  if (keep)
29
30
  features.push(feature);
@@ -50,7 +51,7 @@ function runProgramTests(program, featurePath, steps, schemaFile, templateFile,
50
51
  }
51
52
  }
52
53
  }
53
- jest_cucumber_1.autoBindSteps(features, [...steps, ...steps_1.default]);
54
+ (0, jest_cucumber_1.autoBindSteps)(features, [...steps, ...steps_1.default]);
54
55
  }
55
56
  exports.runProgramTests = runProgramTests;
56
57
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAwC;AACxC,iDAA4E;AAG5E,mCAAgC;AAChC,oDAAmC;AAEnC,6CAAsD;AAA7C,0HAAA,OAAO,OAAc;AAC9B,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAEjB,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,WAAmB,EACnB,KAAwB,EACxB,UAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,iBAA4B;IAE5B,aAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1B,aAAK,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,WAAQ,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC;IAE7D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,WAAW,GAAG,CAAC,CAAC;KACpE;IAED,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,IAAI;YACF,MAAM,OAAO,GAAG,2BAAW,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,EACpC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9D,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,gCAAgC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1E,MAAM,CAAC,CAAC;SACT;KACF;IAED,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;QAC5B,6EAA6E;QAC7E,KAAK,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;YACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM;gBACtB,QAAQ,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SACxE;QACD,KAAK,IAAI,eAAe,IAAI,OAAO,CAAC,gBAAgB,EAAE;YACpD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC/B,eAAe,CAAC,KAAK,GAAG,GACtB,eAAe,CAAC,KAClB,QAAQ,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAC3C;YACD,KAAK,IAAI,QAAQ,IAAI,eAAe,CAAC,SAAS,EAAE;gBAC9C,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC/B,QAAQ,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,eAAe,CAAC,IAAI,CAAC,IAAI,CACjE,GAAG,CACJ,GAAG,CAAC;iBACN;aACF;SACF;KACF;IAED,6BAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,eAAY,CAAC,CAAC,CAAC;AACvD,CAAC;AAvDD,0CAuDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,+BAAwC;AACxC,iDAA4E;AAC5E,oDAAmC;AACnC,mCAAmC;AAEnC,6CAAsD;AAA7C,0HAAA,OAAO,OAAc;AAC9B,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAEjB,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,WAAmB,EACnB,KAAwB,EACxB,UAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,iBAA4B;IAE5B,IAAA,gBAAQ,GAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,gBAAQ,GAAE,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,IAAA,WAAQ,EAAC,GAAG,WAAW,eAAe,CAAC,CAAC;IAE7D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,WAAW,GAAG,CAAC,CAAC;KACpE;IAED,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,IAAI;YACF,MAAM,OAAO,GAAG,IAAA,2BAAW,EAAC,WAAW,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM;gBACpC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9D,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1E,MAAM,CAAC,CAAC;SACT;KACF;IAED,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;QAC5B,6EAA6E;QAC7E,KAAK,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;YACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM;gBACtB,QAAQ,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SACxE;QACD,KAAK,IAAI,eAAe,IAAI,OAAO,CAAC,gBAAgB,EAAE;YACpD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC/B,eAAe,CAAC,KAAK,GAAG,GACtB,eAAe,CAAC,KAClB,QAAQ,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAC3C;YACD,KAAK,IAAI,QAAQ,IAAI,eAAe,CAAC,SAAS,EAAE;gBAC9C,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC/B,QAAQ,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,eAAe,CAAC,IAAI,CAAC,IAAI,CACjE,GAAG,CACJ,GAAG,CAAC;iBACN;aACF;SACF;KACF;IAED,IAAA,6BAAa,EAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,eAAY,CAAC,CAAC,CAAC;AACvD,CAAC;AAvDD,0CAuDC"}
@@ -109,5 +109,34 @@ exports.default = {
109
109
  // testLocationInResults: false,
110
110
  // The glob patterns Jest uses to detect test files
111
111
  testMatch: ["**/__tests__/program-tests.ts"],
112
+ // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
113
+ // testPathIgnorePatterns: [
114
+ // "/node_modules/"
115
+ // ],
116
+ // The regexp pattern or array of patterns that Jest uses to detect test files
117
+ // testRegex: [],
118
+ // This option allows the use of a custom results processor
119
+ // testResultsProcessor: undefined,
120
+ // This option allows use of a custom test runner
121
+ // testRunner: "jasmine2",
122
+ // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
123
+ // testURL: "http://localhost",
124
+ // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
125
+ // timers: "real",
126
+ // A map from regular expressions to paths to transformers
127
+ // transform: undefined,
128
+ // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
129
+ // transformIgnorePatterns: [
130
+ // "/node_modules/",
131
+ // "\\.pnp\\.[^\\/]+$"
132
+ // ],
133
+ // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
134
+ // unmockedModulePathPatterns: undefined,
135
+ // Indicates whether each individual test should be reported during the run
136
+ // verbose: undefined,
137
+ // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
138
+ // watchPathIgnorePatterns: [],
139
+ // Whether to use watchman for file crawling
140
+ // watchman: true,
112
141
  };
113
142
  //# sourceMappingURL=jest.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../src/jest.config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,kBAAe;IACb,oEAAoE;IACpE,mBAAmB;IAEnB,wCAAwC;IACxC,WAAW;IAEX,0EAA0E;IAC1E,kCAAkC;IAElC,kEAAkE;IAClE,UAAU,EAAE,IAAI;IAEhB,0FAA0F;IAC1F,eAAe,EAAE,IAAI;IAErB,yGAAyG;IACzG,kCAAkC;IAElC,4DAA4D;IAC5D,iBAAiB,EAAE,UAAU;IAE7B,sEAAsE;IACtE,gCAAgC;IAChC,qBAAqB;IACrB,KAAK;IAEL,0EAA0E;IAC1E,gBAAgB,EAAE,IAAI;IAEtB,wEAAwE;IACxE,uBAAuB;IACvB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,KAAK;IAEL,+EAA+E;IAC/E,gCAAgC;IAEhC,0CAA0C;IAC1C,kCAAkC;IAElC,4DAA4D;IAC5D,4BAA4B;IAE5B,+EAA+E;IAC/E,0BAA0B;IAE1B,mGAAmG;IACnG,0BAA0B;IAE1B,kGAAkG;IAClG,6BAA6B;IAE7B,+EAA+E;IAC/E,eAAe;IAEf,iOAAiO;IACjO,qBAAqB;IAErB,iGAAiG;IACjG,uBAAuB;IACvB,mBAAmB;IACnB,KAAK;IAEL,+CAA+C;IAC/C,0BAA0B;IAC1B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IAEL,oIAAoI;IACpI,wBAAwB;IAExB,wHAAwH;IACxH,gCAAgC;IAEhC,2CAA2C;IAC3C,iBAAiB;IAEjB,sEAAsE;IACtE,gCAAgC;IAEhC,2DAA2D;IAC3D,MAAM,EAAE,SAAS;IAEjB,sCAAsC;IACtC,uBAAuB;IAEvB,gEAAgE;IAChE,wBAAwB;IAExB,oDAAoD;IACpD,qBAAqB;IAErB,gEAAgE;IAChE,uBAAuB;IAEvB,8BAA8B;IAC9B,uBAAuB;IAEvB,sDAAsD;IACtD,uBAAuB;IAEvB,wEAAwE;IACxE,sBAAsB;IAEtB,6EAA6E;IAC7E,WAAW;IACX,gBAAgB;IAChB,KAAK;IAEL,0EAA0E;IAC1E,yBAAyB;IAEzB,0GAA0G;IAC1G,kBAAkB;IAElB,8GAA8G;IAC9G,kBAAkB,EAAE;QAClB,kEAAkE;KACnE;IAED,sGAAsG;IACtG,wBAAwB;IAExB,sFAAsF;IACtF,2BAA2B;IAE3B,qDAAqD;IACrD,eAAe,EAAE,MAAM;IAEvB,qDAAqD;IACrD,8BAA8B;IAE9B,wCAAwC;IACxC,gCAAgC;IAEhC,mDAAmD;IACnD,SAAS,EAAE,CAAC,+BAA+B,CAAC;CA0C7C,CAAC"}
1
+ {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../src/jest.config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,kBAAe;IACb,oEAAoE;IACpE,mBAAmB;IAEnB,wCAAwC;IACxC,WAAW;IAEX,0EAA0E;IAC1E,kCAAkC;IAElC,kEAAkE;IAClE,UAAU,EAAE,IAAI;IAEhB,0FAA0F;IAC1F,eAAe,EAAE,IAAI;IAErB,yGAAyG;IACzG,kCAAkC;IAElC,4DAA4D;IAC5D,iBAAiB,EAAE,UAAU;IAE7B,sEAAsE;IACtE,gCAAgC;IAChC,qBAAqB;IACrB,KAAK;IAEL,0EAA0E;IAC1E,gBAAgB,EAAE,IAAI;IAEtB,wEAAwE;IACxE,uBAAuB;IACvB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,KAAK;IAEL,+EAA+E;IAC/E,gCAAgC;IAEhC,0CAA0C;IAC1C,kCAAkC;IAElC,4DAA4D;IAC5D,4BAA4B;IAE5B,+EAA+E;IAC/E,0BAA0B;IAE1B,mGAAmG;IACnG,0BAA0B;IAE1B,kGAAkG;IAClG,6BAA6B;IAE7B,+EAA+E;IAC/E,eAAe;IAEf,iOAAiO;IACjO,qBAAqB;IAErB,iGAAiG;IACjG,uBAAuB;IACvB,mBAAmB;IACnB,KAAK;IAEL,+CAA+C;IAC/C,0BAA0B;IAC1B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IAEL,oIAAoI;IACpI,wBAAwB;IAExB,wHAAwH;IACxH,gCAAgC;IAEhC,2CAA2C;IAC3C,iBAAiB;IAEjB,sEAAsE;IACtE,gCAAgC;IAEhC,2DAA2D;IAC3D,MAAM,EAAE,SAAS;IAEjB,sCAAsC;IACtC,uBAAuB;IAEvB,gEAAgE;IAChE,wBAAwB;IAExB,oDAAoD;IACpD,qBAAqB;IAErB,gEAAgE;IAChE,uBAAuB;IAEvB,8BAA8B;IAC9B,uBAAuB;IAEvB,sDAAsD;IACtD,uBAAuB;IAEvB,wEAAwE;IACxE,sBAAsB;IAEtB,6EAA6E;IAC7E,WAAW;IACX,gBAAgB;IAChB,KAAK;IAEL,0EAA0E;IAC1E,yBAAyB;IAEzB,0GAA0G;IAC1G,kBAAkB;IAElB,8GAA8G;IAC9G,kBAAkB,EAAE;QAClB,kEAAkE;KACnE;IAED,sGAAsG;IACtG,wBAAwB;IAExB,sFAAsF;IACtF,2BAA2B;IAE3B,qDAAqD;IACrD,eAAe,EAAE,MAAM;IAEvB,qDAAqD;IACrD,8BAA8B;IAE9B,wCAAwC;IACxC,gCAAgC;IAEhC,mDAAmD;IACnD,SAAS,EAAE,CAAC,+BAA+B,CAAC;IAE5C,wGAAwG;IACxG,4BAA4B;IAC5B,qBAAqB;IACrB,KAAK;IAEL,8EAA8E;IAC9E,iBAAiB;IAEjB,2DAA2D;IAC3D,mCAAmC;IAEnC,iDAAiD;IACjD,0BAA0B;IAE1B,0GAA0G;IAC1G,+BAA+B;IAE/B,gGAAgG;IAChG,kBAAkB;IAElB,0DAA0D;IAC1D,wBAAwB;IAExB,4HAA4H;IAC5H,6BAA6B;IAC7B,sBAAsB;IACtB,wBAAwB;IACxB,KAAK;IAEL,6IAA6I;IAC7I,yCAAyC;IAEzC,2EAA2E;IAC3E,sBAAsB;IAEtB,mHAAmH;IACnH,+BAA+B;IAE/B,4CAA4C;IAC5C,kBAAkB;CACnB,CAAC"}
@@ -9,13 +9,13 @@ function hasTag(tag) {
9
9
  return match && match[1] && match[1].split(",").includes(tag);
10
10
  }
11
11
  function printState() {
12
- const state = Object.assign({}, world_1.getWorld().state);
12
+ const state = Object.assign({}, (0, world_1.getWorld)().state);
13
13
  state.current = Object.assign(Object.assign({}, state.current), { template: "REMOVED FOR CLARITY" });
14
14
  return JSON.stringify(state, null, 2);
15
15
  }
16
16
  beforeEach(() => {
17
17
  // Reset the world between each test
18
- world_1.getWorld().reset();
18
+ (0, world_1.getWorld)().reset();
19
19
  if (hasTag("@debug")) {
20
20
  console.debug(`
21
21
  ===== State before "${expect.getState().currentTestName}" =====
@@ -1 +1 @@
1
- {"version":3,"file":"jest.setup.js","sourceRoot":"","sources":["../src/jest.setup.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AAEnC,mEAAmE;AACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;AAE3E,SAAS,MAAM,CAAC,GAAW;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,KAAK,qBAAQ,gBAAQ,EAAE,CAAC,KAAK,CAAE,CAAC;IAEtC,KAAK,CAAC,OAAO,mCACR,KAAK,CAAC,OAAO,KAChB,QAAQ,EAAE,qBAAqB,GAChC,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACd,oCAAoC;IACpC,gBAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;IAEnB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC;sBACI,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe;EACrD,UAAU,EAAE;;KAET,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC;qBACG,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe;EACpD,UAAU,EAAE;;KAET,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"jest.setup.js","sourceRoot":"","sources":["../src/jest.setup.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AAEnC,mEAAmE;AACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;AAE3E,SAAS,MAAM,CAAC,GAAW;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,KAAK,qBAAQ,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAE,CAAC;IAEtC,KAAK,CAAC,OAAO,mCACR,KAAK,CAAC,OAAO,KAChB,QAAQ,EAAE,qBAAqB,GAChC,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACd,oCAAoC;IACpC,IAAA,gBAAQ,GAAE,CAAC,KAAK,EAAE,CAAC;IAEnB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC;sBACI,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe;EACrD,UAAU,EAAE;;KAET,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC;qBACG,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe;EACpD,UAAU,EAAE;;KAET,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC"}
@@ -3,40 +3,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const program_boilerplate_1 = require("@saasquatch/program-boilerplate");
6
7
  const assert_1 = __importDefault(require("assert"));
7
8
  const dlv_1 = __importDefault(require("dlv"));
8
- const program_boilerplate_1 = require("@saasquatch/program-boilerplate");
9
9
  const world_1 = require("../world");
10
10
  const assertionSteps = ({ then }) => {
11
11
  then(/^the output template will include a "?([^"]+)"? requirement$/, (key) => {
12
- const reqs = world_1.getWorld().state.programTriggerResult.requirements;
12
+ const reqs = (0, world_1.getWorld)().state.programTriggerResult.requirements;
13
13
  const reqFound = reqs.find((r) => r.key === key);
14
- world_1.getWorld().setState({ assertionResults: { foundRequirement: reqFound } });
15
- assert_1.default(reqFound);
14
+ (0, world_1.getWorld)().setState({ assertionResults: { foundRequirement: reqFound } });
15
+ (0, assert_1.default)(reqFound, `"${key}" requirement was not found in the requirements`);
16
16
  });
17
17
  then("the requirement will include a graphql query", () => {
18
- const query = world_1.getWorld().state.assertionResults.foundRequirement.query;
19
- assert_1.default(query !== null, "expected query to be not null");
20
- assert_1.default(query !== undefined, "expected query to be not undefined");
21
- assert_1.default(query.length !== 0, "expected query length > 0");
18
+ const query = (0, world_1.getWorld)().state.assertionResults.foundRequirement.query;
19
+ (0, assert_1.default)(query !== null, "expected query to be not null");
20
+ (0, assert_1.default)(query !== undefined, "expected query to be not undefined");
21
+ (0, assert_1.default)(query.length !== 0, "expected query length > 0");
22
22
  });
23
23
  then("the following validation results will exist:", (data) => {
24
- const results = world_1.getWorld().state.programTriggerResult.validationResults;
24
+ const results = (0, world_1.getWorld)().state.programTriggerResult.validationResults;
25
25
  data.forEach((row) => {
26
26
  const relevantResult = results.find((r) => r.key === row.key);
27
- assert_1.default(relevantResult);
28
- assert_1.default(relevantResult.results.some((r) => {
27
+ (0, assert_1.default)(relevantResult, `Failed to locate validation result with key "${row.key}"`);
28
+ (0, assert_1.default)(relevantResult.results.some((r) => {
29
29
  return r.message === row.message && r.status === row.status;
30
30
  }), `failed to find validation result: ${row.message} ${row.status}`);
31
31
  });
32
32
  });
33
33
  then("the following rewards will exist:", (data) => {
34
- const rewards = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
34
+ const rewards = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
35
35
  return m.type === "CREATE_REWARD";
36
36
  });
37
37
  data.forEach((row, idx) => {
38
38
  const reward = rewards[idx];
39
- assert_1.default(reward, `A reward at index ${idx} does not exist`);
39
+ (0, assert_1.default)(reward, `A reward at index ${idx} does not exist`);
40
40
  assert_1.default.strictEqual(reward.data.user.id, `${row.user.toUpperCase()}ID`, "The user ID does not match");
41
41
  assert_1.default.strictEqual(reward.data.user.accountId, `${row.user.toUpperCase()}ACCOUNTID`, "The account ID does not match");
42
42
  assert_1.default.strictEqual(reward.data.key, row.key, "The row key does not match");
@@ -48,119 +48,121 @@ const assertionSteps = ({ then }) => {
48
48
  data.forEach((row) => {
49
49
  switch (row.type) {
50
50
  case "reward":
51
- const relevantRewards = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
51
+ const relevantRewards = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
52
52
  return (m.type === "CREATE_REWARD" &&
53
53
  m.data.user.id === `${row.user.toUpperCase()}ID` &&
54
54
  m.data.user.accountId ===
55
55
  `${row.user.toUpperCase()}ACCOUNTID` &&
56
56
  m.data.key === row.key);
57
57
  });
58
- assert_1.default.strictEqual(relevantRewards.length, Number(row.count));
58
+ assert_1.default.strictEqual(relevantRewards.length, Number(row.count), `Expected to find ${row.count} rewards but only found ${relevantRewards.length}`);
59
59
  break;
60
60
  case "email":
61
- const relevantEmails = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
61
+ const relevantEmails = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
62
62
  return (m.type === "SEND_EMAIL" &&
63
63
  m.data.user.id === `${row.user.toUpperCase()}ID` &&
64
64
  m.data.user.accountId ===
65
65
  `${row.user.toUpperCase()}ACCOUNTID` &&
66
66
  m.data.key === row.key);
67
67
  });
68
- assert_1.default.strictEqual(relevantEmails.length, Number(row.count));
68
+ assert_1.default.strictEqual(relevantEmails.length, Number(row.count), `Expected to find ${row.count} emails but only found ${relevantEmails.length}`);
69
69
  break;
70
70
  default:
71
71
  }
72
72
  });
73
73
  });
74
74
  then(/^there will not be a "?([^"]+)"? analytic for the "?([^"]+)"? user$/, (type, user) => {
75
- const relevantAnalytics = world_1.getWorld().state.programTriggerResult.analytics.filter((a) => {
75
+ const relevantAnalytics = (0, world_1.getWorld)().state.programTriggerResult.analytics.filter((a) => {
76
76
  return (a.eventType === type &&
77
77
  a.data.user.id === `${user.toUpperCase()}ID` &&
78
78
  a.data.user.accountId === `${user.toUpperCase()}ACCOUNTID`);
79
79
  });
80
- assert_1.default.strictEqual(relevantAnalytics.length, 0);
80
+ assert_1.default.strictEqual(relevantAnalytics.length, 0, `Expected to find 0 "${type}" analytics for "${user}" but found ${relevantAnalytics.length}`);
81
81
  });
82
82
  then("the following analytics will exist:", (data) => {
83
83
  data.forEach((row) => {
84
- const relevantAnalytics = world_1.getWorld().state.programTriggerResult.analytics.filter((a) => {
84
+ const relevantAnalytics = (0, world_1.getWorld)().state.programTriggerResult.analytics.filter((a) => {
85
85
  return (a.eventType === row.type &&
86
86
  a.data.user.id === `${row.user.toUpperCase()}ID` &&
87
87
  a.data.user.accountId === `${row.user.toUpperCase()}ACCOUNTID` &&
88
88
  (!row.analyticsKey || a.data.analyticsKey === row.analyticsKey) &&
89
89
  (!row.isConversion ||
90
- a.data.isConversion === program_boilerplate_1.inferType(row.isConversion)));
90
+ a.data.isConversion === (0, program_boilerplate_1.inferType)(row.isConversion)));
91
91
  });
92
- assert_1.default.strictEqual(relevantAnalytics.length, Number(row.count));
92
+ assert_1.default.strictEqual(relevantAnalytics.length, Number(row.count), `Expected to find ${row.count} analytics but only found ${relevantAnalytics.length}`);
93
93
  });
94
94
  });
95
95
  then("there will be no mutations", () => {
96
- assert_1.default.strictEqual(world_1.getWorld().state.programTriggerResult.mutations.length, 0);
96
+ const numMutations = (0, world_1.getWorld)().state.programTriggerResult.mutations.length;
97
+ assert_1.default.strictEqual(numMutations, 0, `Expected 0 mutations but found ${numMutations}`);
97
98
  });
98
99
  then("there will be no analytics", () => {
99
- assert_1.default.strictEqual(world_1.getWorld().state.programTriggerResult.analytics.length, 0);
100
+ const numAnalytics = (0, world_1.getWorld)().state.programTriggerResult.analytics.length;
101
+ assert_1.default.strictEqual(numAnalytics, 0, `Expected 0 analytics but found ${numAnalytics}`);
100
102
  });
101
103
  then(/^there will be (\d+) "?([^"]+)"? reward(s) for the "?([^"]+)"? user$/, (count, key, user) => {
102
- const relevantRewards = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
104
+ const relevantRewards = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
103
105
  return (m.type === "CREATE_REWARD" &&
104
106
  m.data.user.id === `${user.toUpperCase()}ID` &&
105
107
  m.data.user.accountId === `${user.toUpperCase()}ACCOUNTID` &&
106
108
  m.data.key === key);
107
109
  });
108
- assert_1.default.strictEqual(relevantRewards.length, count);
110
+ assert_1.default.strictEqual(relevantRewards.length, count, `Expected to find ${count} "${key}" analytics for "${user}" but found ${relevantRewards.length}`);
109
111
  });
110
112
  then(/^there will be no reward "?([^"]+)"?$/, (rewardKey) => {
111
- const relevantRewards = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
113
+ const relevantRewards = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
112
114
  return m.type === "CREATE_REWARD" && m.data.key === rewardKey;
113
115
  });
114
- assert_1.default.strictEqual(relevantRewards.length, 0);
116
+ assert_1.default.strictEqual(relevantRewards.length, 0, `Expected to find 0 "${rewardKey}" rewards but found ${relevantRewards.length}`);
115
117
  });
116
118
  then(/^there will be (\d+) "?([^"]+)"? email(s) for the "?([^"]+)"? user$/, (count, key, user) => {
117
- const relevantRewards = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
119
+ const relevantEmails = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
118
120
  return (m.type === "SEND_EMAIL" &&
119
121
  m.data.user.id === `${user.toUpperCase()}ID` &&
120
122
  m.data.user.accountId === `${user.toUpperCase()}ACCOUNTID` &&
121
123
  m.data.key === key);
122
124
  });
123
- assert_1.default.strictEqual(relevantRewards.length, count);
125
+ assert_1.default.strictEqual(relevantEmails.length, count, `Expected to find ${count} "${key}" emails for "${user}" but found ${relevantEmails.length}`);
124
126
  });
125
127
  then(/^the programId will be "?([^"]+)"?$/, (k) => {
126
- assert_1.default.strictEqual(world_1.getWorld().state.programTriggerResult.programId, k);
128
+ assert_1.default.strictEqual((0, world_1.getWorld)().state.programTriggerResult.programId, k, "Incorrect program ID");
127
129
  });
128
130
  then(/^the output will include a "?([^"]+)"? event key trigger$/, (key) => {
129
- const trigger = world_1.getWorld().state.programTriggerResult.trigger;
130
- assert_1.default(trigger.eventKeys.includes(key));
131
+ const trigger = (0, world_1.getWorld)().state.programTriggerResult.trigger;
132
+ (0, assert_1.default)(trigger.eventKeys.includes(key), `Output didn't include a "${key}" event key trigger`);
131
133
  });
132
134
  then(/^the output will not include a "?([^"]+)"? email$/, (key) => {
133
- const emails = world_1.getWorld().state.programTriggerResult.emails;
134
- assert_1.default(!emails.some((e) => e.key === key));
135
+ const relevantEmails = (0, world_1.getWorld)().state.programTriggerResult.emails.filter((e) => e.key === key);
136
+ assert_1.default.deepStrictEqual(relevantEmails.length, 0, `Expected no "${key}" emails but found ${relevantEmails.length}`);
135
137
  });
136
138
  then(/^the output will include a "?([^"]+)"? email$/, (key) => {
137
- const emails = world_1.getWorld().state.programTriggerResult.emails;
138
- assert_1.default(emails.some((e) => e.key === key));
139
+ const relevantEmails = (0, world_1.getWorld)().state.programTriggerResult.emails.filter((e) => e.key === key);
140
+ (0, assert_1.default)(relevantEmails.length > 0, `Expected to find "${key}" email but found none`);
139
141
  });
140
142
  then(/^the output will include a "?([^"]+)"? reward key$/, (key) => {
141
- const rewards = world_1.getWorld().state.programTriggerResult.rewards;
142
- assert_1.default(rewards.some((e) => e.key === key));
143
+ const relevantRewards = (0, world_1.getWorld)().state.programTriggerResult.rewards.filter((e) => e.key === key);
144
+ (0, assert_1.default)(relevantRewards.length > 0, `Expected to find "${key}" reward but found none`);
143
145
  });
144
146
  then(/^the output will not include a "?([^"]+)"? reward key$/, (key) => {
145
- const rewards = world_1.getWorld().state.programTriggerResult.rewards;
146
- assert_1.default(!rewards.some((e) => e.key === key));
147
+ const relevantRewards = (0, world_1.getWorld)().state.programTriggerResult.rewards.filter((e) => e.key === key);
148
+ assert_1.default.deepStrictEqual(relevantRewards.length, 0, `Expected 0 "${key}" rewards but found ${relevantRewards.length}`);
147
149
  });
148
150
  then("the output will include the following rewards and emails:", (data) => {
149
- const emails = world_1.getWorld().state.programTriggerResult.emails;
150
- const rewards = world_1.getWorld().state.programTriggerResult.rewards;
151
+ const emails = (0, world_1.getWorld)().state.programTriggerResult.emails;
152
+ const rewards = (0, world_1.getWorld)().state.programTriggerResult.rewards;
151
153
  data.forEach((row) => {
152
154
  if (row.type === "reward")
153
- assert_1.default(rewards.some((e) => e.key === row.key));
155
+ (0, assert_1.default)(rewards.some((e) => e.key === row.key));
154
156
  if (row.type === "email")
155
- assert_1.default(emails.some((e) => e.key === row.key));
157
+ (0, assert_1.default)(emails.some((e) => e.key === row.key));
156
158
  });
157
159
  });
158
160
  then(/^the following (CREATE_REWARD|MODERATE_GRAPH_NODES|EXCHANGE_REWARD) mutation will exist:$/, (type, filters) => {
159
- const matchingMutations = world_1.getWorld().state.programTriggerResult.mutations.filter((m) => {
161
+ const matchingMutations = (0, world_1.getWorld)().state.programTriggerResult.mutations.filter((m) => {
160
162
  const correctType = m.type === type;
161
163
  const passesFilters = filters.every((row) => {
162
- const expected = program_boilerplate_1.inferType(row.value);
163
- const actual = dlv_1.default(m.data, row.field);
164
+ const expected = (0, program_boilerplate_1.inferType)(row.value);
165
+ const actual = (0, dlv_1.default)(m.data, row.field);
164
166
  if (expected instanceof Object) {
165
167
  try {
166
168
  assert_1.default.deepStrictEqual(actual, expected);
@@ -177,13 +179,13 @@ const assertionSteps = ({ then }) => {
177
179
  assert_1.default.strictEqual(matchingMutations.length, 1);
178
180
  });
179
181
  then("the output template will be unchanged", () => {
180
- assert_1.default.deepStrictEqual(world_1.getWorld().state.programTriggerResult, world_1.World.defaultTemplate);
182
+ assert_1.default.deepStrictEqual((0, world_1.getWorld)().state.programTriggerResult, (0, world_1.getWorld)().getDefaultTemplate());
181
183
  });
182
184
  then(/^there will be no "?([^"]+)"? analytic for "?([^"]+)"?$/, (type, key) => {
183
- const matching = world_1.getWorld().state.programTriggerResult.analytics.filter((a) => {
185
+ const matching = (0, world_1.getWorld)().state.programTriggerResult.analytics.filter((a) => {
184
186
  return a.eventType === type && a.data.analyticsKey === key;
185
187
  });
186
- assert_1.default.strictEqual(matching.length, 0);
188
+ assert_1.default.strictEqual(matching.length, 0, `Expected no "${type}" analytics for "${key}" but found ${matching.length}`);
187
189
  });
188
190
  };
189
191
  exports.default = assertionSteps;
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/steps/assertions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/steps/assertions.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const world_1 = require("../world");
4
4
  const eventSteps = ({ given }) => {
5
5
  given("there are no events", () => {
6
- world_1.getWorld().setState({
6
+ (0, world_1.getWorld)().setState({
7
7
  current: {
8
8
  events: [],
9
9
  },
10
10
  });
11
11
  });
12
12
  given("the following event exists:", (data) => {
13
- world_1.getWorld().setState({
13
+ (0, world_1.getWorld)().setState({
14
14
  current: {
15
- events: [...(world_1.getWorld().state.current.events || []), JSON.parse(data)],
15
+ events: [...((0, world_1.getWorld)().state.current.events || []), JSON.parse(data)],
16
16
  },
17
17
  });
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/steps/events.ts"],"names":[],"mappings":";;AAEA,oCAAoC;AAEpC,MAAM,UAAU,GAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAChD,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAChC,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;aACX;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,6BAA6B,EAAE,CAAC,IAAS,EAAE,EAAE;QACjD,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,MAAM,EAAE,CAAC,GAAG,CAAC,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACvE;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/steps/events.ts"],"names":[],"mappings":";;AACA,oCAAoC;AAEpC,MAAM,UAAU,GAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAChD,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAChC,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;aACX;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,6BAA6B,EAAE,CAAC,IAAS,EAAE,EAAE;QACjD,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,MAAM,EAAE,CAAC,GAAG,CAAC,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACvE;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assertions_1 = __importDefault(require("./assertions"));
6
7
  const events_1 = __importDefault(require("./events"));
8
+ const referral_1 = __importDefault(require("./referral"));
7
9
  const rules_1 = __importDefault(require("./rules"));
8
10
  const trigger_1 = __importDefault(require("./trigger"));
9
11
  const user_1 = __importDefault(require("./user"));
10
- const assertions_1 = __importDefault(require("./assertions"));
11
- const referral_1 = __importDefault(require("./referral"));
12
12
  exports.default = [
13
13
  events_1.default,
14
14
  rules_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAAkC;AAClC,oDAAiC;AACjC,wDAAqC;AACrC,kDAA+B;AAC/B,8DAA0C;AAC1C,0DAAuC;AAEvC,kBAAe;IACb,gBAAU;IACV,eAAU;IACV,iBAAY;IACZ,cAAS;IACT,oBAAc;IACd,kBAAa;CACd,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;;;AAAA,8DAA0C;AAC1C,sDAAkC;AAClC,0DAAuC;AACvC,oDAAiC;AACjC,wDAAqC;AACrC,kDAA+B;AAE/B,kBAAe;IACb,gBAAU;IACV,eAAU;IACV,iBAAY;IACZ,cAAS;IACT,oBAAc;IACd,kBAAa;CACd,CAAC"}
@@ -4,10 +4,10 @@ const program_boilerplate_1 = require("@saasquatch/program-boilerplate");
4
4
  const world_1 = require("../world");
5
5
  const referralSteps = ({ given }) => {
6
6
  given(/^the referral has field "?([^"]+)"? equal to "?([^"]+)"?$/, (key, value) => {
7
- world_1.getWorld().setState({
7
+ (0, world_1.getWorld)().setState({
8
8
  current: {
9
9
  referral: {
10
- [key]: program_boilerplate_1.inferType(value),
10
+ [key]: (0, program_boilerplate_1.inferType)(value),
11
11
  },
12
12
  },
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"file":"referral.js","sourceRoot":"","sources":["../../src/steps/referral.ts"],"names":[],"mappings":";;AACA,yEAA4D;AAE5D,oCAAoC;AAEpC,MAAM,aAAa,GAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACnD,KAAK,CACH,2DAA2D,EAC3D,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QAC7B,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,QAAQ,EAAE;oBACR,CAAC,GAAG,CAAC,EAAE,+BAAS,CAAC,KAAK,CAAC;iBACxB;aACF;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"referral.js","sourceRoot":"","sources":["../../src/steps/referral.ts"],"names":[],"mappings":";;AAAA,yEAA4D;AAE5D,oCAAoC;AAEpC,MAAM,aAAa,GAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACnD,KAAK,CACH,2DAA2D,EAC3D,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QAC7B,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,QAAQ,EAAE;oBACR,CAAC,GAAG,CAAC,EAAE,IAAA,+BAAS,EAAC,KAAK,CAAC;iBACxB;aACF;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const world_1 = require("../world");
4
4
  const rulesSteps = ({ given }) => {
5
5
  given("there are no program rules", () => {
6
- world_1.getWorld().setState({
6
+ (0, world_1.getWorld)().setState({
7
7
  current: {
8
8
  rules: undefined,
9
9
  },
10
10
  });
11
11
  });
12
12
  given("there are no reward rules", () => {
13
- world_1.getWorld().setState({
13
+ (0, world_1.getWorld)().setState({
14
14
  current: {
15
15
  rules: {
16
16
  rewardRules: undefined,
@@ -19,9 +19,9 @@ const rulesSteps = ({ given }) => {
19
19
  });
20
20
  });
21
21
  given(/^the current time is (\d+)$/, (time) => {
22
- world_1.getWorld().setState({
22
+ (0, world_1.getWorld)().setState({
23
23
  current: {
24
- time,
24
+ time: Number(time),
25
25
  },
26
26
  });
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/steps/rules.ts"],"names":[],"mappings":";;AAEA,oCAAoC;AAEpC,MAAM,UAAU,GAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAChD,KAAK,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACvC,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,KAAK,EAAE,SAAS;aACjB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACtC,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,WAAW,EAAE,SAAS;iBACvB;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,6BAA6B,EAAE,CAAC,IAAY,EAAE,EAAE;QACpD,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,IAAI;aACL;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/steps/rules.ts"],"names":[],"mappings":";;AACA,oCAAoC;AAEpC,MAAM,UAAU,GAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAChD,KAAK,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACvC,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,KAAK,EAAE,SAAS;aACjB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACtC,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,WAAW,EAAE,SAAS;iBACvB;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,6BAA6B,EAAE,CAAC,IAAY,EAAE,EAAE;QACpD,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;aACnB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -5,43 +5,55 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const program_boilerplate_1 = require("@saasquatch/program-boilerplate");
7
7
  const deepmerge_1 = __importDefault(require("deepmerge"));
8
- const world_1 = require("../world");
9
8
  const faker_1 = require("../faker");
9
+ const world_1 = require("../world");
10
10
  const triggerSteps = ({ when }) => {
11
- when(/^(?:the )?"?(PROGRAM_INTROSPECTION|PROGRAM_VALIDATION|AFTER_USER_CREATED_OR_UPDATED|AFTER_USER_EVENT_PROCESSED|REFERRAL)"?(?: trigger)? runs$/, (type) => {
12
- const currentState = world_1.getWorld().state.current || {};
11
+ const triggerTypes = [
12
+ "PROGRAM_INTROSPECTION",
13
+ "PROGRAM_VALIDATION",
14
+ "AFTER_USER_CREATED_OR_UPDATED",
15
+ "AFTER_USER_EVENT_PROCESSED",
16
+ "REFERRAL",
17
+ "SCHEDULED",
18
+ "REWARD_SCHEDULED",
19
+ ];
20
+ // prettier-ignore
21
+ const regexString = `^(?:the )?"?(${triggerTypes.join("|")})"?(?: trigger)? runs$`;
22
+ when(new RegExp(regexString), (type) => {
23
+ var _a;
24
+ const currentState = (_a = (0, world_1.getWorld)().state.current) !== null && _a !== void 0 ? _a : {};
13
25
  const { template, rules, programRewards } = currentState;
14
26
  let body;
15
27
  switch (type) {
16
28
  case "PROGRAM_INTROSPECTION":
17
- body = faker_1.getIntrospectionJson(template, rules, programRewards);
29
+ body = (0, faker_1.getIntrospectionJson)(template, rules, programRewards);
18
30
  break;
19
31
  case "PROGRAM_VALIDATION":
20
- body = faker_1.getValidationJson(world_1.getWorld().state.validationReqs, template.id, rules);
32
+ body = (0, faker_1.getValidationJson)((0, world_1.getWorld)().state.validationReqs, template.id, rules);
21
33
  break;
22
34
  default:
23
- body = faker_1.getProgramTriggerJson({
35
+ body = (0, faker_1.getProgramTriggerJson)({
24
36
  type,
25
- user: world_1.getWorld().state.current.user,
26
- rules: world_1.getWorld().state.current.rules,
27
- time: world_1.getWorld().state.current.time,
37
+ user: (0, world_1.getWorld)().state.current.user,
38
+ rules: (0, world_1.getWorld)().state.current.rules,
39
+ time: (0, world_1.getWorld)().state.current.time,
28
40
  });
29
41
  }
30
42
  switch (type) {
31
43
  case "AFTER_USER_CREATED_OR_UPDATED":
32
- body = deepmerge_1.default(body, faker_1.getAUCOUTJson(undefined, world_1.getWorld().state.current.events));
44
+ body = (0, deepmerge_1.default)(body, (0, faker_1.getAUCOUTJson)((0, world_1.getWorld)().state.current.previous, (0, world_1.getWorld)().state.current.events));
33
45
  break;
34
46
  case "AFTER_USER_EVENT_PROCESSED":
35
- body = deepmerge_1.default(body, faker_1.getAUEPTJson(world_1.getWorld().state.current.events));
47
+ body = (0, deepmerge_1.default)(body, (0, faker_1.getAUEPTJson)((0, world_1.getWorld)().state.current.events));
36
48
  break;
37
49
  case "REFERRAL":
38
- body = deepmerge_1.default(body, faker_1.getReferralJson(undefined, world_1.getWorld().state.current.referral));
50
+ body = (0, deepmerge_1.default)(body, (0, faker_1.getReferralJson)(undefined, (0, world_1.getWorld)().state.current.referral));
39
51
  break;
40
52
  default:
41
53
  break;
42
54
  }
43
- world_1.getWorld().setState({
44
- programTriggerResult: program_boilerplate_1.triggerProgram(body, world_1.World.getProgram()).json,
55
+ (0, world_1.getWorld)().setState({
56
+ programTriggerResult: (0, program_boilerplate_1.triggerProgram)(body, (0, world_1.getWorld)().getProgram()).json,
45
57
  });
46
58
  });
47
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/steps/trigger.ts"],"names":[],"mappings":";;;;;AACA,yEAAwE;AACxE,0DAAkC;AAElC,oCAA2C;AAC3C,oCAOkB;AAElB,MAAM,YAAY,GAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACjD,IAAI,CACF,+IAA+I,EAC/I,CAAC,IAA2B,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACpD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;QAEzD,IAAI,IAAS,CAAC;QAEd,QAAQ,IAAI,EAAE;YACZ,KAAK,uBAAuB;gBAC1B,IAAI,GAAG,4BAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;gBAC7D,MAAM;YAER,KAAK,oBAAoB;gBACvB,IAAI,GAAG,yBAAiB,CACtB,gBAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,EAC/B,QAAQ,CAAC,EAAE,EACX,KAAK,CACN,CAAC;gBACF,MAAM;YAER;gBACE,IAAI,GAAG,6BAAqB,CAAC;oBAC3B,IAAI;oBACJ,IAAI,EAAE,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;oBACnC,KAAK,EAAE,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;oBACrC,IAAI,EAAE,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;iBACpC,CAAC,CAAC;SACN;QAED,QAAQ,IAAI,EAAE;YACZ,KAAK,+BAA+B;gBAClC,IAAI,GAAG,mBAAS,CACd,IAAI,EACJ,qBAAa,CAAC,SAAS,EAAE,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAC1D,CAAC;gBACF,MAAM;YAER,KAAK,4BAA4B;gBAC/B,IAAI,GAAG,mBAAS,CAAC,IAAI,EAAE,oBAAY,CAAC,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtE,MAAM;YAER,KAAK,UAAU;gBACb,IAAI,GAAG,mBAAS,CACd,IAAI,EACJ,uBAAe,CAAC,SAAS,EAAE,gBAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC9D,CAAC;gBACF,MAAM;YAER;gBACE,MAAM;SACT;QAED,gBAAQ,EAAE,CAAC,QAAQ,CAAC;YAClB,oBAAoB,EAAE,oCAAc,CAAC,IAAI,EAAE,aAAK,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI;SACpE,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/steps/trigger.ts"],"names":[],"mappings":";;;;;AAAA,yEAAwE;AACxE,0DAAkC;AAElC,oCAOkB;AAClB,oCAAoC;AAEpC,MAAM,YAAY,GAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACjD,MAAM,YAAY,GAAG;QACnB,uBAAuB;QACvB,oBAAoB;QACpB,+BAA+B;QAC/B,4BAA4B;QAC5B,UAAU;QACV,WAAW;QACX,kBAAkB;KACnB,CAAC;IAEF,kBAAkB;IAClB,MAAM,WAAW,GAAG,gBAAgB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAEnF,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAA2B,EAAE,EAAE;;QAC5D,MAAM,YAAY,GAAG,MAAA,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC;QACpD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;QAEzD,IAAI,IAAS,CAAC;QAEd,QAAQ,IAAI,EAAE;YACZ,KAAK,uBAAuB;gBAC1B,IAAI,GAAG,IAAA,4BAAoB,EAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;gBAC7D,MAAM;YAER,KAAK,oBAAoB;gBACvB,IAAI,GAAG,IAAA,yBAAiB,EACtB,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,cAAc,EAC/B,QAAQ,CAAC,EAAE,EACX,KAAK,CACN,CAAC;gBACF,MAAM;YAER;gBACE,IAAI,GAAG,IAAA,6BAAqB,EAAC;oBAC3B,IAAI;oBACJ,IAAI,EAAE,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;oBACnC,KAAK,EAAE,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;oBACrC,IAAI,EAAE,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;iBACpC,CAAC,CAAC;SACN;QAED,QAAQ,IAAI,EAAE;YACZ,KAAK,+BAA+B;gBAClC,IAAI,GAAG,IAAA,mBAAS,EACd,IAAI,EACJ,IAAA,qBAAa,EACX,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EACjC,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAChC,CACF,CAAC;gBACF,MAAM;YAER,KAAK,4BAA4B;gBAC/B,IAAI,GAAG,IAAA,mBAAS,EAAC,IAAI,EAAE,IAAA,oBAAY,EAAC,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtE,MAAM;YAER,KAAK,UAAU;gBACb,IAAI,GAAG,IAAA,mBAAS,EACd,IAAI,EACJ,IAAA,uBAAe,EAAC,SAAS,EAAE,IAAA,gBAAQ,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC9D,CAAC;gBACF,MAAM;YAER;gBACE,MAAM;SACT;QAED,IAAA,gBAAQ,GAAE,CAAC,QAAQ,CAAC;YAClB,oBAAoB,EAAE,IAAA,oCAAc,EAAC,IAAI,EAAE,IAAA,gBAAQ,GAAE,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI;SACzE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
@@ -3,19 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const program_boilerplate_1 = require("@saasquatch/program-boilerplate");
4
4
  const world_1 = require("../world");
5
5
  const userSteps = ({ given }) => {
6
- given(/^the (?:referred )?user has custom field "?([^"]+)"? equal to "?([^"]+)"?$/, (field, val) => {
7
- world_1.getWorld().setState({
6
+ given(/^the (?:referred )?user (?:now )?has custom field "?([^"]+)"? equal to "?([^"]+)"?$/, (field, val) => {
7
+ (0, world_1.getWorld)().setState({
8
8
  current: {
9
9
  user: {
10
10
  customFields: {
11
- [field]: program_boilerplate_1.inferType(val),
11
+ [field]: (0, program_boilerplate_1.inferType)(val),
12
12
  },
13
13
  },
14
14
  },
15
15
  });
16
16
  });
17
+ given(/^the (?:referred )?user previously had custom field "?([^"]+)"? equal to "?([^"]+)"?$/, (field, val) => {
18
+ (0, world_1.getWorld)().setState({
19
+ current: {
20
+ previous: {
21
+ customFields: {
22
+ [field]: (0, program_boilerplate_1.inferType)(val),
23
+ },
24
+ },
25
+ },
26
+ });
27
+ });
28
+ given("the user's custom fields didn't change", () => { });
17
29
  given(/^the (?:referred )?user (is|is not|isn't) blocked$/, (blocked) => {
18
- world_1.getWorld().setState({
30
+ (0, world_1.getWorld)().setState({
19
31
  current: {
20
32
  user: {
21
33
  dateBlocked: blocked === "is" ? 123 : undefined,
@@ -23,10 +35,13 @@ const userSteps = ({ given }) => {
23
35
  },
24
36
  });
25
37
  });
26
- given(/^the segment rules include segment (S+)$/, (seg) => {
27
- const segments = world_1.getWorld().state.current.rules.userSegmentation || [];
28
- segments.push(seg);
29
- world_1.getWorld().setState({
38
+ given(/^the segment rules include segment "?([^"]+)"?$/, (seg) => {
39
+ var _a;
40
+ const segments = (_a = (0, world_1.getWorld)().state.current.rules.userSegmentation) !== null && _a !== void 0 ? _a : [];
41
+ if (!segments.includes(seg)) {
42
+ segments.push(seg);
43
+ }
44
+ (0, world_1.getWorld)().setState({
30
45
  current: {
31
46
  rules: {
32
47
  userSegmentation: segments,
@@ -35,9 +50,11 @@ const userSteps = ({ given }) => {
35
50
  });
36
51
  });
37
52
  given(/^the (?:referred )?user belongs to segment "?([^"]+)"?$/, (segment) => {
38
- const segments = world_1.getWorld().state.current.user.segments || [];
39
- segments.push(segment);
40
- world_1.getWorld().setState({
53
+ const segments = (0, world_1.getWorld)().state.current.user.segments || [];
54
+ if (!segments.includes(segment)) {
55
+ segments.push(segment);
56
+ }
57
+ (0, world_1.getWorld)().setState({
41
58
  current: {
42
59
  user: {
43
60
  segments,
@@ -46,13 +63,13 @@ const userSteps = ({ given }) => {
46
63
  });
47
64
  });
48
65
  given(/^the (?:referred )?user has the following reward:$/, (data) => {
49
- const rewards = world_1.getWorld().state.current.user.rewards || {
66
+ const rewards = (0, world_1.getWorld)().state.current.user.rewards || {
50
67
  totalCount: 0,
51
68
  data: [],
52
69
  };
53
70
  rewards.data.push(JSON.parse(data));
54
71
  rewards.totalCount += 1;
55
- world_1.getWorld().setState({
72
+ (0, world_1.getWorld)().setState({
56
73
  current: {
57
74
  user: {
58
75
  rewards,
@@ -61,14 +78,14 @@ const userSteps = ({ given }) => {
61
78
  });
62
79
  });
63
80
  given("the referrer user has the following reward:", (data) => {
64
- const rewards = world_1.getWorld().state.current.user.referredByReferral
81
+ const rewards = (0, world_1.getWorld)().state.current.user.referredByReferral
65
82
  .referrerUser.rewards || {
66
83
  totalCount: 0,
67
84
  data: [],
68
85
  };
69
86
  rewards.data.push(JSON.parse(data));
70
87
  rewards.totalCount += 1;
71
- world_1.getWorld().setState({
88
+ (0, world_1.getWorld)().setState({
72
89
  current: {
73
90
  user: {
74
91
  referredByReferral: {
@@ -82,15 +99,15 @@ const userSteps = ({ given }) => {
82
99
  });
83
100
  given(/^the (?:referred )?user has a program goal "?([^"]+)"? with count "?([^"]+)"?$/, (goalId, count) => {
84
101
  var _a;
85
- world_1.getWorld().setState({
102
+ (0, world_1.getWorld)().setState({
86
103
  current: {
87
104
  user: {
88
105
  programGoals: [
89
- ...(((_a = world_1.getWorld().state.current.user) === null || _a === void 0 ? void 0 : _a.programGoals) || []),
106
+ ...(((_a = (0, world_1.getWorld)().state.current.user) === null || _a === void 0 ? void 0 : _a.programGoals) || []),
90
107
  {
91
108
  goalId,
92
109
  programId: "r1",
93
- count: program_boilerplate_1.inferType(count),
110
+ count: (0, program_boilerplate_1.inferType)(count),
94
111
  firstDate: 1,
95
112
  lastDate: 1,
96
113
  },
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/steps/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/steps/user.ts"],"names":[],"mappings":"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"}
package/dist/world.d.ts CHANGED
@@ -8,6 +8,7 @@ interface State {
8
8
  current: Partial<{
9
9
  events: any[];
10
10
  time: number;
11
+ previous: any;
11
12
  user: any;
12
13
  referral: any;
13
14
  programRewards: any[];
@@ -16,15 +17,16 @@ interface State {
16
17
  }>;
17
18
  }
18
19
  export declare class World {
19
- static program: types.rpc.Program;
20
- static defaultIntrospection: string;
21
- static defaultRules: string;
22
- static defaultTemplate: any;
20
+ private program;
21
+ private defaultIntrospection;
22
+ private defaultRules;
23
+ private defaultTemplate;
23
24
  state: Readonly<State>;
24
25
  constructor();
25
- static loadDefaults(schemaFile: string, templateFile: string, rulesFile: string): void;
26
- static setProgram(program: types.rpc.Program): void;
27
- static getProgram(): types.rpc.Program;
26
+ loadDefaults(schemaFile: string, templateFile: string, rulesFile: string): void;
27
+ setProgram(program: types.rpc.Program): void;
28
+ getProgram(): types.rpc.Program;
29
+ getDefaultTemplate(): any;
28
30
  setState(newState: Partial<State>): this;
29
31
  reset(): Readonly<State>;
30
32
  }
package/dist/world.js CHANGED
@@ -4,32 +4,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getWorld = exports.World = void 0;
7
- const fs_1 = require("fs");
8
7
  const deepmerge_1 = __importDefault(require("deepmerge"));
8
+ const fs_1 = require("fs");
9
9
  const faker_1 = require("./faker");
10
+ const deepCopy = (input) => JSON.parse(JSON.stringify(input));
10
11
  class World {
11
12
  constructor() {
13
+ this.defaultIntrospection = {};
14
+ this.defaultRules = {};
15
+ this.defaultTemplate = {};
12
16
  this.state = this.reset();
13
17
  }
14
- static loadDefaults(schemaFile, templateFile, rulesFile) {
15
- this.defaultIntrospection = JSON.parse(fs_1.readFileSync(templateFile).toString());
16
- const schema = JSON.parse(fs_1.readFileSync(schemaFile).toString());
17
- this.defaultRules = JSON.parse(fs_1.readFileSync(rulesFile).toString());
18
- this.defaultTemplate = deepmerge_1.default(this.defaultIntrospection, schema);
18
+ loadDefaults(schemaFile, templateFile, rulesFile) {
19
+ this.defaultIntrospection = JSON.parse((0, fs_1.readFileSync)(templateFile).toString());
20
+ const schema = JSON.parse((0, fs_1.readFileSync)(schemaFile).toString());
21
+ this.defaultRules = JSON.parse((0, fs_1.readFileSync)(rulesFile).toString());
22
+ this.defaultTemplate = (0, deepmerge_1.default)(this.defaultIntrospection, schema);
19
23
  }
20
- static setProgram(program) {
24
+ setProgram(program) {
21
25
  this.program = program;
22
26
  }
23
- static getProgram() {
27
+ getProgram() {
24
28
  if (!this.program)
25
29
  throw new Error("The program has to be set");
26
30
  return this.program;
27
31
  }
32
+ getDefaultTemplate() {
33
+ return this.defaultTemplate;
34
+ }
28
35
  setState(newState) {
29
- this.state = deepmerge_1.default(this.state, newState, { arrayMerge: (_, a) => a });
36
+ this.state = (0, deepmerge_1.default)(this.state, newState, { arrayMerge: (_, a) => a });
30
37
  return this;
31
38
  }
32
39
  reset() {
40
+ const user = (0, faker_1.getRandomUser)("REFERRED");
33
41
  this.state = {
34
42
  programTriggerResult: {},
35
43
  validationReqs: [],
@@ -38,22 +46,21 @@ class World {
38
46
  events: [],
39
47
  referral: {},
40
48
  programRewards: [],
41
- user: faker_1.getRandomUser("REFERRED"),
42
- rules: World.defaultRules,
43
- template: World.defaultTemplate,
49
+ previous: user,
50
+ user: user,
51
+ rules: deepCopy(this.defaultRules),
52
+ template: deepCopy(this.defaultTemplate),
44
53
  },
45
54
  };
46
55
  return this.state;
47
56
  }
48
57
  }
49
58
  exports.World = World;
50
- World.defaultIntrospection = "{}";
51
- World.defaultRules = "{}";
52
- World.defaultTemplate = {};
53
59
  let world;
54
60
  function getWorld() {
55
- if (!world)
61
+ if (world === undefined) {
56
62
  world = new World();
63
+ }
57
64
  return world;
58
65
  }
59
66
  exports.getWorld = getWorld;
package/dist/world.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAkC;AAClC,0DAAkC;AAGlC,mCAAwC;AAmBxC,MAAa,KAAK;IAQhB;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,UAAkB,EAClB,YAAoB,EACpB,SAAiB;QAEjB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACpC,iBAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,mBAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAA0B;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG;YACX,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,EAAE;YAClB,gBAAgB,EAAE,EAAE;YACpB,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,qBAAa,CAAC,UAAU,CAAC;gBAC/B,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,QAAQ,EAAE,KAAK,CAAC,eAAe;aAChC;SACF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;;AAtDH,sBAuDC;AArDQ,0BAAoB,GAAG,IAAI,CAAC;AAC5B,kBAAY,GAAG,IAAI,CAAC;AACpB,qBAAe,GAAQ,EAAE,CAAC;AAqDnC,IAAI,KAAwB,CAAC;AAE7B,SAAgB,QAAQ;IACtB,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAChC,OAAO,KAAc,CAAC;AACxB,CAAC;AAHD,4BAGC"}
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":";;;;;;AACA,0DAAkC;AAClC,2BAAkC;AAClC,mCAAwC;AAoBxC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnE,MAAa,KAAK;IAQhB;QANQ,yBAAoB,GAAG,EAAE,CAAC;QAC1B,iBAAY,GAAG,EAAE,CAAC;QAClB,oBAAe,GAAQ,EAAE,CAAC;QAKhC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,UAAkB,EAAE,YAAoB,EAAE,SAAiB;QACtE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACpC,IAAA,iBAAY,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,UAAU,CAAC,OAA0B;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,IAAI,GAAG,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG;YACX,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,EAAE;YAClB,gBAAgB,EAAE,EAAE;YACpB,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;gBAClC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;aACzC;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AA1DD,sBA0DC;AAED,IAAI,KAAwB,CAAC;AAE7B,SAAgB,QAAQ;IACtB,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;KACrB;IAED,OAAO,KAAc,CAAC;AACxB,CAAC;AAND,4BAMC"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@saasquatch/program-test-suite",
3
- "version": "2.1.1",
3
+ "version": "2.1.2-2",
4
4
  "description": "A collection of utilities for creating program unit tests",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
7
+ "dev": "tsc -w",
7
8
  "build": "tsc"
8
9
  },
9
10
  "files": [
@@ -18,13 +19,10 @@
18
19
  "glob": "^7.1.6",
19
20
  "jest": "^26.6.3",
20
21
  "jest-cucumber": "^3.0.0",
21
- "ts-jest": "^26.5.0"
22
- },
23
- "peerDependencies": {
24
- "@saasquatch/program-boilerplate": ">=3.5.6"
22
+ "ts-jest": "^26.5.0",
23
+ "@saasquatch/program-boilerplate": "^3.5.11"
25
24
  },
26
25
  "devDependencies": {
27
- "@saasquatch/program-boilerplate": "^3.5.7-0",
28
26
  "@types/dlv": "^1.1.2",
29
27
  "@types/express": "^4.17.11",
30
28
  "@types/faker": "^5.1.6",