@effectionx/bdd 0.3.1 → 0.4.1

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.
Files changed (68) hide show
  1. package/LICENSE +9 -0
  2. package/bdd.test.ts +12 -0
  3. package/bdd.ts +124 -0
  4. package/dist/bdd.d.ts +41 -0
  5. package/dist/bdd.d.ts.map +1 -0
  6. package/dist/bdd.js +77 -0
  7. package/dist/mod.d.ts +2 -0
  8. package/dist/mod.d.ts.map +1 -0
  9. package/dist/mod.js +3 -0
  10. package/dist/mod.node.d.ts +10 -0
  11. package/dist/mod.node.d.ts.map +1 -0
  12. package/dist/mod.node.js +8 -0
  13. package/dist/tsconfig.tsbuildinfo +1 -0
  14. package/mod.deno.ts +128 -0
  15. package/mod.node.ts +10 -0
  16. package/mod.ts +3 -0
  17. package/package.json +19 -17
  18. package/tsconfig.json +14 -0
  19. package/esm/_dnt.shims.d.ts +0 -2
  20. package/esm/_dnt.shims.d.ts.map +0 -1
  21. package/esm/_dnt.shims.js +0 -57
  22. package/esm/bdd/mod.d.ts +0 -26
  23. package/esm/bdd/mod.d.ts.map +0 -1
  24. package/esm/bdd/mod.js +0 -78
  25. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts +0 -26
  26. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts.map +0 -1
  27. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.js +0 -30
  28. package/esm/deps/jsr.io/@std/internal/1.0.12/assertion_state.d.ts +0 -150
  29. package/esm/deps/jsr.io/@std/internal/1.0.12/assertion_state.d.ts.map +0 -1
  30. package/esm/deps/jsr.io/@std/internal/1.0.12/assertion_state.js +0 -237
  31. package/esm/deps/jsr.io/@std/testing/1.0.16/_test_suite.d.ts +0 -78
  32. package/esm/deps/jsr.io/@std/testing/1.0.16/_test_suite.d.ts.map +0 -1
  33. package/esm/deps/jsr.io/@std/testing/1.0.16/_test_suite.js +0 -385
  34. package/esm/deps/jsr.io/@std/testing/1.0.16/bdd.d.ts +0 -336
  35. package/esm/deps/jsr.io/@std/testing/1.0.16/bdd.d.ts.map +0 -1
  36. package/esm/deps/jsr.io/@std/testing/1.0.16/bdd.js +0 -1057
  37. package/esm/package.json +0 -3
  38. package/esm/test-adapter/box.d.ts +0 -4
  39. package/esm/test-adapter/box.d.ts.map +0 -1
  40. package/esm/test-adapter/box.js +0 -15
  41. package/esm/test-adapter/mod.d.ts +0 -77
  42. package/esm/test-adapter/mod.d.ts.map +0 -1
  43. package/esm/test-adapter/mod.js +0 -89
  44. package/script/_dnt.shims.d.ts +0 -2
  45. package/script/_dnt.shims.d.ts.map +0 -1
  46. package/script/_dnt.shims.js +0 -60
  47. package/script/bdd/mod.d.ts +0 -26
  48. package/script/bdd/mod.d.ts.map +0 -1
  49. package/script/bdd/mod.js +0 -84
  50. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts +0 -26
  51. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts.map +0 -1
  52. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.js +0 -34
  53. package/script/deps/jsr.io/@std/internal/1.0.12/assertion_state.d.ts +0 -150
  54. package/script/deps/jsr.io/@std/internal/1.0.12/assertion_state.d.ts.map +0 -1
  55. package/script/deps/jsr.io/@std/internal/1.0.12/assertion_state.js +0 -275
  56. package/script/deps/jsr.io/@std/testing/1.0.16/_test_suite.d.ts +0 -78
  57. package/script/deps/jsr.io/@std/testing/1.0.16/_test_suite.d.ts.map +0 -1
  58. package/script/deps/jsr.io/@std/testing/1.0.16/_test_suite.js +0 -389
  59. package/script/deps/jsr.io/@std/testing/1.0.16/bdd.d.ts +0 -336
  60. package/script/deps/jsr.io/@std/testing/1.0.16/bdd.d.ts.map +0 -1
  61. package/script/deps/jsr.io/@std/testing/1.0.16/bdd.js +0 -1068
  62. package/script/package.json +0 -3
  63. package/script/test-adapter/box.d.ts +0 -4
  64. package/script/test-adapter/box.d.ts.map +0 -1
  65. package/script/test-adapter/box.js +0 -19
  66. package/script/test-adapter/mod.d.ts +0 -77
  67. package/script/test-adapter/mod.d.ts.map +0 -1
  68. package/script/test-adapter/mod.js +0 -92
@@ -1,237 +0,0 @@
1
- // Copyright 2018-2025 the Deno authors. MIT license.
2
- // This module is browser compatible.
3
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
4
- if (kind === "m") throw new TypeError("Private method is not writable");
5
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
6
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
7
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
8
- };
9
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
10
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
11
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
12
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
13
- };
14
- var _AssertionState_instances, _AssertionState_state, _AssertionState_ensureCleanedUp;
15
- /**
16
- * Check the test suite internal state
17
- *
18
- * @example Usage
19
- * ```ts ignore
20
- * import { AssertionState } from "@std/internal";
21
- *
22
- * const assertionState = new AssertionState();
23
- * ```
24
- */
25
- import * as dntShim from "../../../../../_dnt.shims.js";
26
- export class AssertionState {
27
- constructor() {
28
- _AssertionState_instances.add(this);
29
- _AssertionState_state.set(this, void 0);
30
- __classPrivateFieldSet(this, _AssertionState_state, {
31
- assertionCount: undefined,
32
- assertionCheck: false,
33
- assertionTriggered: false,
34
- assertionTriggeredCount: 0,
35
- }, "f");
36
- if (typeof globalThis?.addEventListener === "function") {
37
- globalThis.addEventListener("unload", () => {
38
- __classPrivateFieldGet(this, _AssertionState_instances, "m", _AssertionState_ensureCleanedUp).call(this);
39
- });
40
- }
41
- else if (
42
- // deno-lint-ignore no-explicit-any
43
- typeof dntShim.dntGlobalThis?.process?.on === "function") {
44
- // deno-lint-ignore no-explicit-any
45
- dntShim.dntGlobalThis.process.on("exit", () => {
46
- __classPrivateFieldGet(this, _AssertionState_instances, "m", _AssertionState_ensureCleanedUp).call(this);
47
- });
48
- }
49
- else {
50
- // deno-lint-ignore no-console
51
- console.warn("AssertionCounter cleanup step was not registered");
52
- }
53
- }
54
- /**
55
- * Get the number that through `expect.assertions` api set.
56
- *
57
- * @returns the number that through `expect.assertions` api set.
58
- *
59
- * @example Usage
60
- * ```ts ignore
61
- * import { AssertionState } from "@std/internal";
62
- *
63
- * const assertionState = new AssertionState();
64
- * assertionState.assertionCount;
65
- * ```
66
- */
67
- get assertionCount() {
68
- return __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCount;
69
- }
70
- /**
71
- * Get a certain number that assertions were called before.
72
- *
73
- * @returns return a certain number that assertions were called before.
74
- *
75
- * @example Usage
76
- * ```ts ignore
77
- * import { AssertionState } from "@std/internal";
78
- *
79
- * const assertionState = new AssertionState();
80
- * assertionState.assertionTriggeredCount;
81
- * ```
82
- */
83
- get assertionTriggeredCount() {
84
- return __classPrivateFieldGet(this, _AssertionState_state, "f").assertionTriggeredCount;
85
- }
86
- /**
87
- * If `expect.hasAssertions` called, then through this method to update #state.assertionCheck value.
88
- *
89
- * @param val Set #state.assertionCheck's value
90
- *
91
- * @example Usage
92
- * ```ts ignore
93
- * import { AssertionState } from "@std/internal";
94
- *
95
- * const assertionState = new AssertionState();
96
- * assertionState.setAssertionCheck(true);
97
- * ```
98
- */
99
- setAssertionCheck(val) {
100
- __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCheck = val;
101
- }
102
- /**
103
- * If any matchers was called, `#state.assertionTriggered` will be set through this method.
104
- *
105
- * @param val Set #state.assertionTriggered's value
106
- *
107
- * @example Usage
108
- * ```ts ignore
109
- * import { AssertionState } from "@std/internal";
110
- *
111
- * const assertionState = new AssertionState();
112
- * assertionState.setAssertionTriggered(true);
113
- * ```
114
- */
115
- setAssertionTriggered(val) {
116
- __classPrivateFieldGet(this, _AssertionState_state, "f").assertionTriggered = val;
117
- }
118
- /**
119
- * If `expect.assertions` called, then through this method to update #state.assertionCheck value.
120
- *
121
- * @param num Set #state.assertionCount's value, for example if the value is set 2, that means
122
- * you must have two assertion matchers call in your test suite.
123
- *
124
- * @example Usage
125
- * ```ts ignore
126
- * import { AssertionState } from "@std/internal";
127
- *
128
- * const assertionState = new AssertionState();
129
- * assertionState.setAssertionCount(2);
130
- * ```
131
- */
132
- setAssertionCount(num) {
133
- __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCount = num;
134
- }
135
- /**
136
- * If any matchers was called, `#state.assertionTriggeredCount` value will plus one internally.
137
- *
138
- * @example Usage
139
- * ```ts ignore
140
- * import { AssertionState } from "@std/internal";
141
- *
142
- * const assertionState = new AssertionState();
143
- * assertionState.updateAssertionTriggerCount();
144
- * ```
145
- */
146
- updateAssertionTriggerCount() {
147
- if (__classPrivateFieldGet(this, _AssertionState_state, "f").assertionCount !== undefined) {
148
- __classPrivateFieldGet(this, _AssertionState_state, "f").assertionTriggeredCount += 1;
149
- }
150
- }
151
- /**
152
- * Check Assertion internal state, if `#state.assertionCheck` is set true, but
153
- * `#state.assertionTriggered` is still false, then should throw an Assertion Error.
154
- *
155
- * @returns a boolean value, that the test suite is satisfied with the check. If not,
156
- * it should throw an AssertionError.
157
- *
158
- * @example Usage
159
- * ```ts ignore
160
- * import { AssertionState } from "@std/internal";
161
- *
162
- * const assertionState = new AssertionState();
163
- * if (assertionState.checkAssertionErrorState()) {
164
- * // throw AssertionError("");
165
- * }
166
- * ```
167
- */
168
- checkAssertionErrorState() {
169
- return __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCheck && !__classPrivateFieldGet(this, _AssertionState_state, "f").assertionTriggered;
170
- }
171
- /**
172
- * Reset all assertion state when every test suite function ran completely.
173
- *
174
- * @example Usage
175
- * ```ts ignore
176
- * import { AssertionState } from "@std/internal";
177
- *
178
- * const assertionState = new AssertionState();
179
- * assertionState.resetAssertionState();
180
- * ```
181
- */
182
- resetAssertionState() {
183
- __classPrivateFieldSet(this, _AssertionState_state, {
184
- assertionCount: undefined,
185
- assertionCheck: false,
186
- assertionTriggered: false,
187
- assertionTriggeredCount: 0,
188
- }, "f");
189
- }
190
- /**
191
- * Check Assertion called state, if `#state.assertionCount` is set to a number value, but
192
- * `#state.assertionTriggeredCount` is less then it, then should throw an assertion error.
193
- *
194
- * @returns a boolean value, that the test suite is satisfied with the check. If not,
195
- * it should throw an AssertionError.
196
- *
197
- * @example Usage
198
- * ```ts ignore
199
- * import { AssertionState } from "@std/internal";
200
- *
201
- * const assertionState = new AssertionState();
202
- * if (assertionState.checkAssertionCountSatisfied()) {
203
- * // throw AssertionError("");
204
- * }
205
- * ```
206
- */
207
- checkAssertionCountSatisfied() {
208
- return __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCount !== undefined &&
209
- __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCount !== __classPrivateFieldGet(this, _AssertionState_state, "f").assertionTriggeredCount;
210
- }
211
- }
212
- _AssertionState_state = new WeakMap(), _AssertionState_instances = new WeakSet(), _AssertionState_ensureCleanedUp = function _AssertionState_ensureCleanedUp() {
213
- // If any checks were registered, after the test suite runs the checks,
214
- // `resetAssertionState` should also have been called. If it was not,
215
- // then the test suite did not run the checks.
216
- if (__classPrivateFieldGet(this, _AssertionState_state, "f").assertionCheck ||
217
- __classPrivateFieldGet(this, _AssertionState_state, "f").assertionCount !== undefined) {
218
- throw new Error("AssertionCounter was not cleaned up: If tests are not otherwise failing, ensure `expect.hasAssertion` and `expect.assertions` are only run in bdd tests");
219
- }
220
- };
221
- const assertionState = new AssertionState();
222
- /**
223
- * return an instance of AssertionState
224
- *
225
- * @returns AssertionState
226
- *
227
- * @example Usage
228
- * ```ts ignore
229
- * import { getAssertionState } from "@std/internal";
230
- *
231
- * const assertionState = getAssertionState();
232
- * assertionState.setAssertionTriggered(true);
233
- * ```
234
- */
235
- export function getAssertionState() {
236
- return assertionState;
237
- }
@@ -1,78 +0,0 @@
1
- export declare const globalSanitizersState: {
2
- sanitizeExit: boolean | undefined;
3
- sanitizeOps: boolean | undefined;
4
- sanitizeResources: boolean | undefined;
5
- };
6
- /** The options for creating a test suite with the describe function. */
7
- export interface DescribeDefinition<T> extends Omit<Deno.TestDefinition, "fn"> {
8
- /** The body of the test suite */
9
- fn?: () => void | undefined;
10
- /**
11
- * The `describe` function returns a `TestSuite` representing the group of tests.
12
- * If `describe` is called within another `describe` calls `fn`, the suite will default to that parent `describe` calls returned `TestSuite`.
13
- * If `describe` is not called within another `describe` calls `fn`, the suite will default to the `TestSuite` representing the global group of tests.
14
- */
15
- suite?: TestSuite<T>;
16
- /** Run some shared setup before all of the tests in the suite. */
17
- beforeAll?: ((this: T) => void | Promise<void>) | ((this: T) => void | Promise<void>)[];
18
- /** Run some shared teardown after all of the tests in the suite. */
19
- afterAll?: ((this: T) => void | Promise<void>) | ((this: T) => void | Promise<void>)[];
20
- /** Run some shared setup before each test in the suite. */
21
- beforeEach?: ((this: T) => void | Promise<void>) | ((this: T) => void | Promise<void>)[];
22
- /** Run some shared teardown after each test in the suite. */
23
- afterEach?: ((this: T) => void | Promise<void>) | ((this: T) => void | Promise<void>)[];
24
- }
25
- /** The options for creating an individual test case with the it function. */
26
- export interface ItDefinition<T> extends Omit<Deno.TestDefinition, "fn"> {
27
- /** The body of the test case */
28
- fn: (this: T, t: Deno.TestContext) => void | Promise<void>;
29
- /**
30
- * The `describe` function returns a `TestSuite` representing the group of tests.
31
- * If `it` is called within a `describe` calls `fn`, the suite will default to that parent `describe` calls returned `TestSuite`.
32
- * If `it` is not called within a `describe` calls `fn`, the suite will default to the `TestSuite` representing the global group of tests.
33
- */
34
- suite?: TestSuite<T>;
35
- }
36
- /** The names of all the different types of hooks. */
37
- export type HookNames = "beforeAll" | "afterAll" | "beforeEach" | "afterEach";
38
- /**
39
- * A group of tests.
40
- */
41
- export interface TestSuite<T> {
42
- /** The symbol to use for grouping the test suite */
43
- symbol: symbol;
44
- }
45
- /**
46
- * An internal representation of a group of tests.
47
- */
48
- export declare class TestSuiteInternal<T> implements TestSuite<T> {
49
- symbol: symbol;
50
- protected describe: DescribeDefinition<T>;
51
- protected steps: (TestSuiteInternal<T> | ItDefinition<T>)[];
52
- protected hasOnlyStep: boolean;
53
- constructor(describe: DescribeDefinition<T>);
54
- /** Stores how many test suites are executing. */
55
- static runningCount: number;
56
- /** If a test has been registered yet. Block adding global hooks if a test has been registered. */
57
- static started: boolean;
58
- /** A map of all test suites by symbol. */
59
- static suites: Map<symbol, TestSuiteInternal<any>>;
60
- /** The current test suite being registered. */
61
- static current: TestSuiteInternal<any> | null;
62
- /** The stack of tests that are actively running. */
63
- static active: symbol[];
64
- /** This is used internally for testing this module. */
65
- static reset(): void;
66
- /** This is used internally to register tests. */
67
- static registerTest(options: Deno.TestDefinition): void;
68
- /** Updates all steps within top level suite to have ignore set to true if only is not set to true on step. */
69
- static addingOnlyStep<T>(suite: TestSuiteInternal<T>): void;
70
- /** This is used internally to add steps to a test suite. */
71
- static addStep<T>(suite: TestSuiteInternal<T>, step: TestSuiteInternal<T> | ItDefinition<T>): void;
72
- /** This is used internally to add hooks to a test suite. */
73
- static setHook<T>(suite: TestSuiteInternal<T>, name: HookNames, fn: (this: T) => void | Promise<void>): void;
74
- /** This is used internally to run all steps for a test suite. */
75
- static run<T>(suite: TestSuiteInternal<T>, context: T, t: Deno.TestContext): Promise<void>;
76
- static runTest<T>(t: Deno.TestContext, fn: (this: T, t: Deno.TestContext) => void | Promise<void>, context: T, activeIndex?: number): Promise<void>;
77
- }
78
- //# sourceMappingURL=_test_suite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_test_suite.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.16/_test_suite.ts"],"names":[],"mappings":"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"}