cabloy 5.1.198 → 5.1.199

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/.cabloy-version CHANGED
@@ -1 +1 @@
1
- 5.1.198
1
+ 5.1.199
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.1.199
4
+
5
+ ### Improvements
6
+
7
+ - Update implementation chart tests.
8
+
3
9
  ## 5.1.198
4
10
 
5
11
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cabloy",
3
- "version": "5.1.198",
3
+ "version": "5.1.199",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "A Node.js fullstack framework",
6
6
  "keywords": [
@@ -1,5 +1,5 @@
1
1
  import assert from 'node:assert/strict';
2
- import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
2
+ import { mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { resolve } from 'node:path';
5
5
  import { test } from 'node:test';
@@ -440,20 +440,19 @@ test('ATP catalogue role headers define scenarios but coverage and evidence tabl
440
440
  );
441
441
  });
442
442
 
443
- test('existing business ATP catalogues remain compatible with strict definitions', async () => {
443
+ test('repository ATP catalogues remain compatible with strict definitions', async () => {
444
444
  const root = resolve(import.meta.dirname, '../../..');
445
- const commerce = parseAtpIds(
446
- await readFile(resolve(root, 'repo-specs/a-commerce/test-plan.md'), 'utf8'),
447
- );
448
- const account = parseAtpIds(
449
- await readFile(resolve(root, 'repo-specs/home-user/test-plan.md'), 'utf8'),
450
- );
451
- assert.ok(commerce.has('ATP-SPC-04'));
452
- assert.ok(commerce.has('ATP-SPC-05'));
453
- assert.ok(account.has('ATP-HUA-ACC-01'));
454
- assert.ok(account.has('ATP-HUA-RST-03'));
455
- assert.ok(commerce.size > 10);
456
- assert.ok(account.size > 10);
445
+ const suiteEntries = await readdir(resolve(root, 'repo-specs'), { withFileTypes: true });
446
+ const suiteNames = suiteEntries
447
+ .filter(entry => entry.isDirectory() && !entry.name.startsWith('.'))
448
+ .map(entry => entry.name)
449
+ .sort();
450
+ assert.ok(suiteNames.length > 0, 'repo-specs must contain at least one suite directory');
451
+ for (const suiteName of suiteNames) {
452
+ const testPlan = await readFile(resolve(root, 'repo-specs', suiteName, 'test-plan.md'), 'utf8');
453
+ const atpIds = parseAtpIds(testPlan);
454
+ assert.ok(atpIds.size > 0, `${suiteName}/test-plan.md must define formal ATP scenarios`);
455
+ }
457
456
  });
458
457
 
459
458
  test('progress rejects duplicate rows and multiple IDs in one row with source locations', () => {