test-fns 1.15.5 → 1.15.7

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.
@@ -64,6 +64,9 @@ exports.given.repeatably =
64
64
  criteria: 'SOME',
65
65
  anyAttemptPassed: false,
66
66
  thisAttemptFailed: false,
67
+ thisAttemptIndex: 0,
68
+ allAttemptsQuant: configuration.attempts,
69
+ anyError: null,
67
70
  };
68
71
  for (const attempt of (0, exports.getNumberRange)({
69
72
  start: 1,
@@ -73,9 +76,10 @@ exports.given.repeatably =
73
76
  // register state by current path (explicit key, direct reference)
74
77
  const path = (0, registryDescribeRepeatable_1.getDescribePath)();
75
78
  registryDescribeRepeatable_1.registryDescribeRepeatable.set(path, state);
76
- // reset failure flag at start of this attempt's execution (not registration)
79
+ // reset failure flag and set current attempt at start of this attempt's run
77
80
  (0, getTestGlobals_1.globals)().beforeAll(() => {
78
81
  state.thisAttemptFailed = false;
82
+ state.thisAttemptIndex = attempt;
79
83
  });
80
84
  // mark success after attempt completes without failures
81
85
  (0, getTestGlobals_1.globals)().afterAll(() => {
@@ -142,6 +146,9 @@ exports.when.repeatably =
142
146
  criteria: 'SOME',
143
147
  anyAttemptPassed: false,
144
148
  thisAttemptFailed: false,
149
+ thisAttemptIndex: 0,
150
+ allAttemptsQuant: configuration.attempts,
151
+ anyError: null,
145
152
  };
146
153
  for (const attempt of (0, exports.getNumberRange)({
147
154
  start: 1,
@@ -151,9 +158,10 @@ exports.when.repeatably =
151
158
  // register state by current path (explicit key, direct reference)
152
159
  const path = (0, registryDescribeRepeatable_1.getDescribePath)();
153
160
  registryDescribeRepeatable_1.registryDescribeRepeatable.set(path, state);
154
- // reset failure flag at start of this attempt's execution (not registration)
161
+ // reset failure flag and set current attempt at start of this attempt's run
155
162
  (0, getTestGlobals_1.globals)().beforeAll(() => {
156
163
  state.thisAttemptFailed = false;
164
+ state.thisAttemptIndex = attempt;
157
165
  });
158
166
  // mark success after attempt completes without failures
159
167
  (0, getTestGlobals_1.globals)().afterAll(() => {
@@ -214,7 +222,15 @@ const then = ((...input) => {
214
222
  }
215
223
  catch (error) {
216
224
  repeatableCtx.thisAttemptFailed = true;
217
- throw error;
225
+ // preserve first error for final attempt
226
+ if (!repeatableCtx.anyError && error instanceof Error) {
227
+ repeatableCtx.anyError = error;
228
+ }
229
+ // only throw on final attempt - earlier failures are retried
230
+ if (repeatableCtx.thisAttemptIndex === repeatableCtx.allAttemptsQuant) {
231
+ throw repeatableCtx.anyError ?? error;
232
+ }
233
+ // else: swallow error, let subsequent attempts try
218
234
  }
219
235
  }
220
236
  });
@@ -236,7 +252,15 @@ const then = ((...input) => {
236
252
  }
237
253
  catch (error) {
238
254
  repeatableCtx.thisAttemptFailed = true;
239
- throw error;
255
+ // preserve first error for final attempt
256
+ if (!repeatableCtx.anyError && error instanceof Error) {
257
+ repeatableCtx.anyError = error;
258
+ }
259
+ // only throw on final attempt - earlier failures are retried
260
+ if (repeatableCtx.thisAttemptIndex === repeatableCtx.allAttemptsQuant) {
261
+ throw repeatableCtx.anyError ?? error;
262
+ }
263
+ // else: swallow error, let subsequent attempts try
240
264
  }
241
265
  }
242
266
  });
@@ -1 +1 @@
1
- {"version":3,"file":"givenWhenThen.js","sourceRoot":"","sources":["../../src/domain.operations/givenWhenThen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"givenWhenThen.js","sourceRoot":"","sources":["../../src/domain.operations/givenWhenThen.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,21 @@ export interface RepeatableState {
27
27
  * .why = used to determine if this attempt should mark success
28
28
  */
29
29
  thisAttemptFailed: boolean;
30
+ /**
31
+ * .what = which attempt number is active now
32
+ * .why = used to determine if we should throw on failure (only on final attempt)
33
+ */
34
+ thisAttemptIndex: number;
35
+ /**
36
+ * .what = total number of attempts configured
37
+ * .why = used to determine if current attempt is final
38
+ */
39
+ allAttemptsQuant: number;
40
+ /**
41
+ * .what = error encountered in any failed attempt
42
+ * .why = preserve error to throw on final attempt if all fail
43
+ */
44
+ anyError: Error | null;
30
45
  }
31
46
  /**
32
47
  * .what = registry for repeatably state keyed by describe path
@@ -1 +1 @@
1
- {"version":3,"file":"registryDescribeRepeatable.js","sourceRoot":"","sources":["../../src/domain.operations/registryDescribeRepeatable.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;GAGG;AACH,MAAM,aAAa,GAAa,EAAE,CAAC;AAEnC;;;GAGG;AACI,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAA1D,QAAA,eAAe,mBAA2C;AA0BvE;;;GAGG;AACU,QAAA,0BAA0B,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE7E;;;;;GAKG;AACH,IAAI,wBAAwB,GAA2B,IAAI,CAAC;AAE5D;;;GAGG;AACI,MAAM,2BAA2B,GAAG,GAA2B,EAAE,CACtE,wBAAwB,CAAC;AADd,QAAA,2BAA2B,+BACb;AAE3B;;;GAGG;AACI,MAAM,2BAA2B,GAAG,CACzC,GAA2B,EACrB,EAAE;IACR,wBAAwB,GAAG,GAAG,CAAC;AACjC,CAAC,CAAC;AAJW,QAAA,2BAA2B,+BAItC;AAEF;;;;;;;;GAQG;AACI,MAAM,qBAAqB,GAAG,CACnC,IAAY,EACiB,EAAE;IAC/B,wBAAwB;IACxB,MAAM,KAAK,GAAG,kCAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,wDAAwD;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,kCAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAjBW,QAAA,qBAAqB,yBAiBhC;AAEF;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAGpC,EAAgB,EAAE;IACjB,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAA,mCAA2B,GAAE,CAAC;IAClD,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,IAAA,mCAA2B,GAAE,CAAC;QAC9C,IAAI,WAAW;YAAE,IAAA,mCAA2B,EAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,KAAK,CAAC,EAAE,EAAE,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAA,mCAA2B,EAAC,OAAO,CAAC,CAAC;YACrC,aAAa,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B"}
1
+ {"version":3,"file":"registryDescribeRepeatable.js","sourceRoot":"","sources":["../../src/domain.operations/registryDescribeRepeatable.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;GAGG;AACH,MAAM,aAAa,GAAa,EAAE,CAAC;AAEnC;;;GAGG;AACI,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAA1D,QAAA,eAAe,mBAA2C;AA4CvE;;;GAGG;AACU,QAAA,0BAA0B,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE7E;;;;;GAKG;AACH,IAAI,wBAAwB,GAA2B,IAAI,CAAC;AAE5D;;;GAGG;AACI,MAAM,2BAA2B,GAAG,GAA2B,EAAE,CACtE,wBAAwB,CAAC;AADd,QAAA,2BAA2B,+BACb;AAE3B;;;GAGG;AACI,MAAM,2BAA2B,GAAG,CACzC,GAA2B,EACrB,EAAE;IACR,wBAAwB,GAAG,GAAG,CAAC;AACjC,CAAC,CAAC;AAJW,QAAA,2BAA2B,+BAItC;AAEF;;;;;;;;GAQG;AACI,MAAM,qBAAqB,GAAG,CACnC,IAAY,EACiB,EAAE;IAC/B,wBAAwB;IACxB,MAAM,KAAK,GAAG,kCAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,wDAAwD;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,kCAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAjBW,QAAA,qBAAqB,yBAiBhC;AAEF;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAGpC,EAAgB,EAAE;IACjB,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAA,mCAA2B,GAAE,CAAC;IAClD,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,IAAA,mCAA2B,GAAE,CAAC;QAC9C,IAAI,WAAW;YAAE,IAAA,mCAA2B,EAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,KAAK,CAAC,EAAE,EAAE,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAA,mCAA2B,EAAC,OAAO,CAAC,CAAC;YACrC,aAAa,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B"}
@@ -1,10 +1,25 @@
1
+ /**
2
+ * .what = result of findsertSymlink operation
3
+ * .why = observability into which code path was taken for tests and debug
4
+ */
5
+ export interface FindsertSymlinkResult {
6
+ /** whether the symlink was created or already found */
7
+ effect: 'created' | 'found';
8
+ /** race condition that was overcome, if any */
9
+ overcame: 'EEXIST' | 'ENOENT' | null;
10
+ }
1
11
  /**
2
12
  * .what = creates a symlink if absent, no-op if correct symlink exists
3
13
  * .why = idempotent symlink creation safe for parallel workers
4
14
  *
15
+ * .note = handles three race scenarios:
16
+ * 1. EEXIST: another worker created symlink → verify target, return if correct
17
+ * 2. ENOENT on verify: another worker deleted symlink → retry
18
+ * 3. stale symlink/file: remove and create
19
+ *
5
20
  * @throws UnexpectedCodePathError if path exists but is not the expected symlink
6
21
  */
7
22
  export declare const findsertSymlink: (input: {
8
23
  target: string;
9
24
  path: string;
10
- }) => void;
25
+ }) => FindsertSymlinkResult;
@@ -31,50 +31,78 @@ const isSymlinkEexistError_1 = require("./isSymlinkEexistError");
31
31
  * .what = creates a symlink if absent, no-op if correct symlink exists
32
32
  * .why = idempotent symlink creation safe for parallel workers
33
33
  *
34
+ * .note = handles three race scenarios:
35
+ * 1. EEXIST: another worker created symlink → verify target, return if correct
36
+ * 2. ENOENT on verify: another worker deleted symlink → retry
37
+ * 3. stale symlink/file: remove and create
38
+ *
34
39
  * @throws UnexpectedCodePathError if path exists but is not the expected symlink
35
40
  */
36
41
  const findsertSymlink = (input) => {
37
- // check if correct symlink already exists
38
- const stat = (() => {
39
- try {
40
- return fs.lstatSync(input.path);
42
+ const MAX_RETRIES = 3;
43
+ for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
44
+ // check if correct symlink already exists
45
+ const stat = (() => {
46
+ try {
47
+ return fs.lstatSync(input.path);
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ })();
53
+ if (stat?.isSymbolicLink()) {
54
+ try {
55
+ const currentTarget = fs.readlinkSync(input.path);
56
+ if (currentTarget === input.target) {
57
+ return { effect: 'found', overcame: null }; // correct symlink exists
58
+ }
59
+ }
60
+ catch (error) {
61
+ // symlink deleted between lstat and readlink — retry
62
+ const code = error.code;
63
+ if (code === 'ENOENT')
64
+ continue;
65
+ throw error;
66
+ }
41
67
  }
42
- catch {
43
- return null;
68
+ // remove stale symlink, directory, or file
69
+ if (stat) {
70
+ fs.rmSync(input.path, { recursive: true, force: true });
44
71
  }
45
- })();
46
- if (stat?.isSymbolicLink()) {
47
- const currentTarget = fs.readlinkSync(input.path);
48
- if (currentTarget === input.target) {
49
- return; // correct symlink exists
72
+ // create symlink
73
+ try {
74
+ fs.symlinkSync(input.target, input.path);
75
+ return { effect: 'created', overcame: null }; // success
50
76
  }
51
- }
52
- // remove stale symlink, directory, or file
53
- if (stat) {
54
- fs.rmSync(input.path, { recursive: true, force: true });
55
- }
56
- // create symlink
57
- try {
58
- fs.symlinkSync(input.target, input.path);
59
- }
60
- catch (error) {
61
- // handle race: another worker created symlink between our check and create
62
- if (!(0, isSymlinkEexistError_1.isSymlinkEexistError)(error))
63
- throw error;
64
- // another worker created symlink verify it's correct
65
- const raceStat = fs.lstatSync(input.path);
66
- if (raceStat.isSymbolicLink()) {
67
- const currentTarget = fs.readlinkSync(input.path);
68
- if (currentTarget === input.target) {
69
- return; // correct symlink created by another worker
77
+ catch (error) {
78
+ // handle race: another worker created symlink between our check and create
79
+ if (!(0, isSymlinkEexistError_1.isSymlinkEexistError)(error))
80
+ throw error;
81
+ // another worker created symlink — verify it's correct
82
+ try {
83
+ const raceStat = fs.lstatSync(input.path);
84
+ if (raceStat.isSymbolicLink()) {
85
+ const currentTarget = fs.readlinkSync(input.path);
86
+ if (currentTarget === input.target) {
87
+ return { effect: 'found', overcame: 'EEXIST' }; // correct symlink created by another worker
88
+ }
89
+ }
90
+ throw new helpful_errors_1.UnexpectedCodePathError('symlink exists but points to unexpected target', {
91
+ target: input.target,
92
+ path: input.path,
93
+ isSymlink: raceStat.isSymbolicLink(),
94
+ });
95
+ }
96
+ catch (verifyError) {
97
+ // symlink deleted between EEXIST and verify — retry
98
+ const code = verifyError.code;
99
+ if (code === 'ENOENT')
100
+ continue;
101
+ throw verifyError;
70
102
  }
71
103
  }
72
- throw new helpful_errors_1.UnexpectedCodePathError('symlink exists but points to unexpected target', {
73
- target: input.target,
74
- path: input.path,
75
- isSymlink: raceStat.isSymbolicLink(),
76
- });
77
104
  }
105
+ throw new helpful_errors_1.UnexpectedCodePathError('findsertSymlink exceeded max retries due to concurrent deletes', { target: input.target, path: input.path, maxRetries: MAX_RETRIES });
78
106
  };
79
107
  exports.findsertSymlink = findsertSymlink;
80
108
  //# sourceMappingURL=findsertSymlink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findsertSymlink.js","sourceRoot":"","sources":["../../../src/infra/isomorph.fs/findsertSymlink.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAyD;AAEzD,4CAA8B;AAC9B,iEAA8D;AAE9D;;;;;GAKG;AACI,MAAM,eAAe,GAAG,CAAC,KAG/B,EAAQ,EAAE;IACT,0CAA0C;IAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,yBAAyB;QACnC,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,IAAI,EAAE,CAAC;QACT,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC;QACH,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2EAA2E;QAC3E,IAAI,CAAC,IAAA,2CAAoB,EAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAE9C,uDAAuD;QACvD,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnC,OAAO,CAAC,4CAA4C;YACtD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,wCAAuB,CAC/B,gDAAgD,EAChD;YACE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,QAAQ,CAAC,cAAc,EAAE;SACrC,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAlDW,QAAA,eAAe,mBAkD1B"}
1
+ {"version":3,"file":"findsertSymlink.js","sourceRoot":"","sources":["../../../src/infra/isomorph.fs/findsertSymlink.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "test-fns",
3
3
  "author": "ehmpathy",
4
4
  "description": "write usecase driven tests systematically for simpler, safer, and more readable code",
5
- "version": "1.15.5",
5
+ "version": "1.15.7",
6
6
  "repository": "ehmpathy/test-fns",
7
7
  "homepage": "https://github.com/ehmpathy/test-fns",
8
8
  "keywords": [
@@ -68,7 +68,7 @@
68
68
  "preversion": "npm run prepush",
69
69
  "postversion": "git push origin HEAD --tags --no-verify",
70
70
  "prepare:husky": "husky install && chmod ug+x .husky/*",
71
- "prepare:rhachet": "rhachet init --hooks --roles behaver driver mechanic reviewer",
71
+ "prepare:rhachet": "rhachet init --hooks --roles mechanic behaver driver reviewer librarian ergonomist architect",
72
72
  "prepare": "if [ -e .git ] && [ -z $CI ]; then npm run prepare:husky && npm run prepare:rhachet; fi",
73
73
  "upgrade:rhachet": "rhachet upgrade"
74
74
  },
@@ -99,11 +99,11 @@
99
99
  "esbuild-register": "3.6.0",
100
100
  "husky": "8.0.3",
101
101
  "jest": "30.2.0",
102
- "rhachet": "1.35.3",
102
+ "rhachet": "1.37.15",
103
103
  "rhachet-brains-anthropic": "0.3.3",
104
- "rhachet-roles-bhrain": "0.12.4",
105
- "rhachet-roles-bhuild": "0.10.0",
106
- "rhachet-roles-ehmpathy": "1.26.3",
104
+ "rhachet-roles-bhrain": "0.19.0",
105
+ "rhachet-roles-bhuild": "0.14.1",
106
+ "rhachet-roles-ehmpathy": "1.27.13",
107
107
  "tsc-alias": "1.8.10",
108
108
  "tsx": "4.21.0",
109
109
  "typescript": "5.4.5",