@dereekb/util 10.0.6 → 10.0.8

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/test/package.json CHANGED
@@ -1,15 +1,9 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "10.0.6",
3
+ "version": "10.0.8",
4
4
  "type": "commonjs",
5
- "exports": {
6
- "./package.json": "./package.json",
7
- ".": {
8
- "module": "./index.esm.js",
9
- "import": "./index.cjs.mjs",
10
- "default": "./index.cjs.js"
11
- }
5
+ "peerDependencies": {
6
+ "@dereekb/util": "*"
12
7
  },
13
- "module": "./index.esm.js",
14
- "main": "./index.cjs.js"
8
+ "main": "./src/index.js"
15
9
  }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/util/test/src/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./jest"), exports);
5
+ tslib_1.__exportStar(require("./jest.fail"), exports);
6
+ tslib_1.__exportStar(require("./jest.wrap"), exports);
7
+ tslib_1.__exportStar(require("./jest.function"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/test/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,sDAA4B;AAC5B,sDAA4B;AAC5B,0DAAgC"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ /**
3
+ * https://github.com/facebook/jest/issues/11698
4
+ *
5
+ * Since fail() was silently removed, we redefine it.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.fakeDoneHandler = exports.itShouldFail = exports.shouldFail = exports.expectSuccessfulFail = exports.expectFail = exports.EXPECT_ERROR_DEFAULT_HANDLER = exports.failWithDoneDueToSuccess = exports.failDueToSuccess = exports.failTest = exports.failDueToSuccessError = exports.JestUnexpectedSuccessFailureError = exports.failSuccessfully = exports.failSuccessfullyError = exports.JestExpectedFailError = exports.failWithJestDoneCallback = void 0;
9
+ const util_1 = require("@dereekb/util");
10
+ const make_error_1 = require("make-error");
11
+ /**
12
+ * Passes the error to the JestDoneCallback.
13
+ * @param done
14
+ * @param e
15
+ */
16
+ function failWithJestDoneCallback(done, e = new Error('failed test')) {
17
+ if (done.fail != null) {
18
+ done.fail(e);
19
+ }
20
+ else {
21
+ done(e);
22
+ }
23
+ }
24
+ exports.failWithJestDoneCallback = failWithJestDoneCallback;
25
+ // MARK: Errors
26
+ /**
27
+ * Error thrown by fail() and used by expectError()
28
+ */
29
+ class JestExpectedFailError extends make_error_1.BaseError {
30
+ }
31
+ exports.JestExpectedFailError = JestExpectedFailError;
32
+ function failSuccessfullyError(message) {
33
+ return new JestExpectedFailError(message);
34
+ }
35
+ exports.failSuccessfullyError = failSuccessfullyError;
36
+ function failSuccessfully(message) {
37
+ throw failSuccessfullyError(message);
38
+ }
39
+ exports.failSuccessfully = failSuccessfully;
40
+ /**
41
+ * Error thrown when success occurs when it should not have.
42
+ */
43
+ class JestUnexpectedSuccessFailureError extends make_error_1.BaseError {
44
+ }
45
+ exports.JestUnexpectedSuccessFailureError = JestUnexpectedSuccessFailureError;
46
+ function failDueToSuccessError(message) {
47
+ return new JestUnexpectedSuccessFailureError(message !== null && message !== void 0 ? message : 'expected an error to occur but was successful instead');
48
+ }
49
+ exports.failDueToSuccessError = failDueToSuccessError;
50
+ function failTest(message) {
51
+ throw failDueToSuccessError(message);
52
+ }
53
+ exports.failTest = failTest;
54
+ function failDueToSuccess() {
55
+ throw failDueToSuccessError();
56
+ }
57
+ exports.failDueToSuccess = failDueToSuccess;
58
+ function failWithDoneDueToSuccess(done) {
59
+ failWithJestDoneCallback(done, failDueToSuccessError());
60
+ }
61
+ exports.failWithDoneDueToSuccess = failWithDoneDueToSuccess;
62
+ function EXPECT_ERROR_DEFAULT_HANDLER(e) {
63
+ if (e instanceof JestExpectedFailError) {
64
+ // success
65
+ }
66
+ else {
67
+ throw e;
68
+ }
69
+ }
70
+ exports.EXPECT_ERROR_DEFAULT_HANDLER = EXPECT_ERROR_DEFAULT_HANDLER;
71
+ function expectFail(errorFn) {
72
+ function handleError(e) {
73
+ if (e instanceof JestUnexpectedSuccessFailureError) {
74
+ throw e;
75
+ }
76
+ else {
77
+ failSuccessfully();
78
+ }
79
+ }
80
+ try {
81
+ const result = errorFn();
82
+ if ((0, util_1.isPromise)(result)) {
83
+ return result.then(failDueToSuccess).catch(handleError);
84
+ }
85
+ else {
86
+ failDueToSuccess();
87
+ }
88
+ }
89
+ catch (e) {
90
+ handleError(e);
91
+ }
92
+ }
93
+ exports.expectFail = expectFail;
94
+ function expectSuccessfulFail(errorFn, handleError = EXPECT_ERROR_DEFAULT_HANDLER) {
95
+ try {
96
+ const result = errorFn();
97
+ if ((0, util_1.isPromise)(result)) {
98
+ return result.then(failDueToSuccess).catch(handleError);
99
+ }
100
+ else {
101
+ failDueToSuccess();
102
+ }
103
+ }
104
+ catch (e) {
105
+ handleError(e);
106
+ }
107
+ }
108
+ exports.expectSuccessfulFail = expectSuccessfulFail;
109
+ /**
110
+ * Used to wrap a Jest testing function and watch for JestExpectedFailError errors in order to pass the test. Other exceptions are treated normally as failures.
111
+ *
112
+ * This is typically used in conjunction with failSuccessfully(), expectSuccessfulFail(), or expectFail().
113
+ *
114
+ * @param fn
115
+ * @param strict
116
+ * @returns
117
+ */
118
+ function shouldFail(fn) {
119
+ const usesDoneCallback = fn.length > 0;
120
+ return (done) => {
121
+ function handleError(e) {
122
+ if (!(e instanceof JestExpectedFailError)) {
123
+ failWithJestDoneCallback(done, e);
124
+ }
125
+ else {
126
+ done();
127
+ }
128
+ }
129
+ expectSuccessfulFail(() => {
130
+ let result;
131
+ if (usesDoneCallback) {
132
+ const fakeDone = (0, util_1.build)({
133
+ base: fakeDoneHandler(),
134
+ build: (x) => {
135
+ x.failSuccessfully = () => {
136
+ fakeDone(failSuccessfullyError());
137
+ };
138
+ }
139
+ });
140
+ const callbackWithDoneResult = fn(fakeDone);
141
+ if ((0, util_1.isPromise)(callbackWithDoneResult)) {
142
+ fakeDone.reject(new Error('Configured to use "done" value while returning a promise. Configure your test to use one or the other.'));
143
+ }
144
+ // return the fake done promise. Done/fail will resolve as a promise.
145
+ result = fakeDone._ref.promise;
146
+ }
147
+ else {
148
+ result = fn();
149
+ }
150
+ return result;
151
+ }, handleError);
152
+ };
153
+ }
154
+ exports.shouldFail = shouldFail;
155
+ function itShouldFail(describeOrFn, fn) {
156
+ let description;
157
+ if (typeof describeOrFn === 'string') {
158
+ description = `should fail ${describeOrFn}`;
159
+ }
160
+ else {
161
+ fn = describeOrFn;
162
+ description = 'should fail';
163
+ }
164
+ it(description, shouldFail(fn));
165
+ }
166
+ exports.itShouldFail = itShouldFail;
167
+ function fakeDoneHandler() {
168
+ const promiseRef = (0, util_1.promiseReference)();
169
+ const doneHandler = promiseRef.resolve;
170
+ const failHandler = (e) => {
171
+ promiseRef.reject(e);
172
+ };
173
+ const fakeDone = (error) => {
174
+ if (error) {
175
+ failHandler(error);
176
+ }
177
+ else {
178
+ doneHandler(0);
179
+ }
180
+ };
181
+ fakeDone.fail = (error) => {
182
+ failHandler(error);
183
+ };
184
+ fakeDone._ref = promiseRef;
185
+ fakeDone.promise = promiseRef.promise;
186
+ fakeDone.resolve = promiseRef.resolve;
187
+ fakeDone.reject = promiseRef.reject;
188
+ return fakeDone;
189
+ }
190
+ exports.fakeDoneHandler = fakeDoneHandler;
191
+ //# sourceMappingURL=jest.fail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.fail.js","sourceRoot":"","sources":["../../../../../../packages/util/test/src/lib/jest.fail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useJestFunctionMapFixture = exports.useJestFunctionFixture = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ /**
6
+ * Creates a test context and jest configurations that provides a function to build tests based on the configuration.
7
+ */
8
+ function useJestFunctionFixture(config, buildTests) {
9
+ const { fn } = config;
10
+ const forward = (0, util_1.forwardFunction)(fn);
11
+ buildTests(forward);
12
+ }
13
+ exports.useJestFunctionFixture = useJestFunctionFixture;
14
+ /**
15
+ * Creates a test context and jest configurations that provides a function to build tests based on the configuration.
16
+ */
17
+ function useJestFunctionMapFixture(config, buildTests) {
18
+ const forwardedFunctions = (0, util_1.mapObjectMap)(config.fns, (fn) => (0, util_1.forwardFunction)(fn));
19
+ buildTests(forwardedFunctions);
20
+ }
21
+ exports.useJestFunctionMapFixture = useJestFunctionMapFixture;
22
+ //# sourceMappingURL=jest.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.function.js","sourceRoot":"","sources":["../../../../../../packages/util/test/src/lib/jest.function.ts"],"names":[],"mappings":";;;AAAA,wCAAsE;AAUtE;;GAEG;AACH,SAAgB,sBAAsB,CAA2C,MAAoC,EAAE,UAA4C;IACjK,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEtB,MAAM,OAAO,GAAG,IAAA,sBAAe,EAAC,EAAE,CAAC,CAAC;IACpC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AALD,wDAKC;AAmBD;;GAEG;AACH,SAAgB,yBAAyB,CAAqC,MAAoC,EAAE,UAA+C;IACjK,MAAM,kBAAkB,GAAG,IAAA,mBAAY,EAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,sBAAe,EAAC,EAAE,CAAC,CAAC,CAAC;IACjF,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACjC,CAAC;AAHD,8DAGC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useJestContextFixture = exports.jestTestContextBuilder = exports.AbstractChildJestTestContextFixture = exports.AbstractJestTestContextFixture = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Abstract JestTestContextFixture instance.
7
+ */
8
+ class AbstractJestTestContextFixture {
9
+ get instance() {
10
+ return this._instance;
11
+ }
12
+ setInstance(instance) {
13
+ if (this._instance != null) {
14
+ throw new Error(`The testing fixture is locked. Don't call setInstance() directly.`);
15
+ }
16
+ this._instance = instance;
17
+ return () => {
18
+ delete this._instance;
19
+ };
20
+ }
21
+ }
22
+ exports.AbstractJestTestContextFixture = AbstractJestTestContextFixture;
23
+ /**
24
+ * Abstract JestTestContextFixture instance with a parent.
25
+ */
26
+ class AbstractChildJestTestContextFixture extends AbstractJestTestContextFixture {
27
+ constructor(parent) {
28
+ super();
29
+ this.parent = parent;
30
+ }
31
+ }
32
+ exports.AbstractChildJestTestContextFixture = AbstractChildJestTestContextFixture;
33
+ /**
34
+ * Creates a JestTestContextBuilderFunction given the input builder.
35
+ *
36
+ * @param builder
37
+ * @returns
38
+ */
39
+ function jestTestContextBuilder(builder) {
40
+ return (inputConfig) => {
41
+ const config = builder.buildConfig(inputConfig);
42
+ return (buildTests) => {
43
+ const fixture = builder.buildFixture(config);
44
+ // add before each
45
+ if (builder.beforeEach != null) {
46
+ beforeEach(builder.beforeEach);
47
+ }
48
+ // add tests
49
+ useJestContextFixture({
50
+ fixture,
51
+ /**
52
+ * Build tests by passing the fixture to the testing functions.
53
+ *
54
+ * This will inject all tests and sub Jest lifecycle items.
55
+ */
56
+ buildTests,
57
+ initInstance: () => builder.setupInstance(config),
58
+ destroyInstance: (instance) => builder.teardownInstance(instance, config)
59
+ });
60
+ // add after each
61
+ if (builder.afterEach != null) {
62
+ afterEach(builder.afterEach);
63
+ }
64
+ };
65
+ };
66
+ }
67
+ exports.jestTestContextBuilder = jestTestContextBuilder;
68
+ /**
69
+ * Creates a test context and jest configurations that will initialize an instance
70
+ */
71
+ function useJestContextFixture(config) {
72
+ const { buildTests, fixture, initInstance, destroyInstance } = config;
73
+ let clearInstance;
74
+ let instance;
75
+ // Create an instance
76
+ beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
77
+ try {
78
+ instance = yield initInstance();
79
+ clearInstance = fixture.setInstance(instance);
80
+ }
81
+ catch (e) {
82
+ console.error('Failed building a test instance due to an error in buildInstance(). Error: ', e);
83
+ if (clearInstance) {
84
+ clearInstance();
85
+ }
86
+ throw e;
87
+ }
88
+ }));
89
+ // Declare tests
90
+ buildTests(fixture);
91
+ // Cleanup
92
+ afterEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
93
+ if (clearInstance) {
94
+ clearInstance();
95
+ }
96
+ if (fixture.instance != null) {
97
+ console.warn('Expected instance to be set on fixture for cleanup but was set to something else.');
98
+ }
99
+ if (destroyInstance) {
100
+ try {
101
+ yield destroyInstance(instance);
102
+ instance = undefined;
103
+ }
104
+ catch (e) {
105
+ console.error('Failed due to error in destroyInstance()');
106
+ throw e;
107
+ }
108
+ }
109
+ }));
110
+ }
111
+ exports.useJestContextFixture = useJestContextFixture;
112
+ //# sourceMappingURL=jest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.js","sourceRoot":"","sources":["../../../../../../packages/util/test/src/lib/jest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instanceWrapJestTestContextFactory = exports.wrapJestTestContextFactory = exports.AbstractWrappedFixtureWithInstance = exports.AbstractWrappedFixture = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jest_1 = require("./jest");
6
+ class AbstractWrappedFixture {
7
+ constructor(fixture) {
8
+ this.fixture = fixture;
9
+ }
10
+ }
11
+ exports.AbstractWrappedFixture = AbstractWrappedFixture;
12
+ class AbstractWrappedFixtureWithInstance extends jest_1.AbstractJestTestContextFixture {
13
+ constructor(parent) {
14
+ super();
15
+ this.parent = parent;
16
+ }
17
+ }
18
+ exports.AbstractWrappedFixtureWithInstance = AbstractWrappedFixtureWithInstance;
19
+ /**
20
+ * Wraps the input JestTestContextFactory to emit another type of Fixture for tests.
21
+ *
22
+ * @returns
23
+ */
24
+ function wrapJestTestContextFactory(config) {
25
+ return (factory) => {
26
+ return (buildTests) => {
27
+ factory((inputFixture) => {
28
+ const wrap = config.wrapFixture(inputFixture);
29
+ let effect;
30
+ // add before each
31
+ if (config.setupWrap != null) {
32
+ beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ effect = yield config.setupWrap(wrap);
34
+ }));
35
+ }
36
+ // add tests
37
+ buildTests(wrap);
38
+ // add after each
39
+ if (config.teardownWrap != null) {
40
+ afterEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
41
+ yield config.teardownWrap(wrap, effect);
42
+ }));
43
+ }
44
+ });
45
+ };
46
+ };
47
+ }
48
+ exports.wrapJestTestContextFactory = wrapJestTestContextFactory;
49
+ function instanceWrapJestTestContextFactory(config) {
50
+ return wrapJestTestContextFactory({
51
+ wrapFixture: config.wrapFixture,
52
+ setupWrap: (wrap) => tslib_1.__awaiter(this, void 0, void 0, function* () {
53
+ const instance = yield config.makeInstance(wrap);
54
+ const effect = wrap.setInstance(instance);
55
+ if (config.setupInstance) {
56
+ yield config.setupInstance(instance, wrap);
57
+ }
58
+ return effect;
59
+ }),
60
+ teardownWrap: (wrap, deleteInstanceEffect) => tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ deleteInstanceEffect === null || deleteInstanceEffect === void 0 ? void 0 : deleteInstanceEffect();
62
+ if (config.teardownInstance) {
63
+ yield config.teardownInstance(wrap.instance);
64
+ }
65
+ })
66
+ });
67
+ }
68
+ exports.instanceWrapJestTestContextFactory = instanceWrapJestTestContextFactory;
69
+ //# sourceMappingURL=jest.wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.wrap.js","sourceRoot":"","sources":["../../../../../../packages/util/test/src/lib/jest.wrap.ts"],"names":[],"mappings":";;;;AAAA,iCAAgK;AAEhK,MAAsB,sBAAsB;IAC1C,YAAqB,OAAU;QAAV,YAAO,GAAP,OAAO,CAAG;IAAG,CAAC;CACpC;AAFD,wDAEC;AAED,MAAsB,kCAAyC,SAAQ,qCAAiC;IACtG,YAAqB,MAAS;QAC5B,KAAK,EAAE,CAAC;QADW,WAAM,GAAN,MAAM,CAAG;IAE9B,CAAC;CACF;AAJD,gFAIC;AAiCD;;;;GAIG;AACH,SAAgB,0BAA0B,CAAgB,MAA0C;IAClG,OAAO,CAAC,OAAkC,EAAE,EAAE;QAC5C,OAAO,CAAC,UAAgD,EAAE,EAAE;YAC1D,OAAO,CAAC,CAAC,YAAe,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC9C,IAAI,MAAS,CAAC;gBAEd,kBAAkB;gBAClB,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;oBAC5B,UAAU,CAAC,GAAS,EAAE;wBACpB,MAAM,GAAG,MAAM,MAAM,CAAC,SAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,CAAC,CAAA,CAAC,CAAC;iBACJ;gBAED,YAAY;gBACZ,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEjB,iBAAiB;gBACjB,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC/B,SAAS,CAAC,GAAS,EAAE;wBACnB,MAAM,MAAM,CAAC,YAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC3C,CAAC,CAAA,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA1BD,gEA0BC;AAwBD,SAAgB,kCAAkC,CAA2D,MAAkD;IAC7J,OAAO,0BAA0B,CAAoD;QACnF,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,CAAO,IAAO,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE1C,IAAI,MAAM,CAAC,aAAa,EAAE;gBACxB,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aAC5C;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAA;QACD,YAAY,EAAE,CAAO,IAAO,EAAE,oBAAiE,EAAE,EAAE;YACjG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,EAAI,CAAC;YAEzB,IAAI,MAAM,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9C;QACH,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AArBD,gFAqBC"}
@@ -1 +0,0 @@
1
- exports._default = require('./index.cjs.js').default;
package/index.cjs.mjs DELETED
@@ -1,2 +0,0 @@
1
- export * from './index.cjs.js';
2
- export { _default as default } from './index.cjs.default.js';
@@ -1 +0,0 @@
1
- export * from "./src/index";
@@ -1 +0,0 @@
1
- exports._default = require('./index.cjs.js').default;