Atlas Report
lib · 820 tests · 1325 ranges · 1169 concepts · density 0.3808
Concept facts
474 code concepts · 607 test concepts · 88 joint concepts
707 tests introduced at test concepts · 113 tests introduced at joint concepts · 86 concepts introduce multiple tests
Shape
single-test 3% · narrow 9% · shared 12% · broad 76% · uncovered 0%
Open strata mosaic
Subsystems
Showing the 12 largest of 16 communities. Open the complete map.
lib 968 concepts
lib 81 concepts
lib 55 concepts
lib 28 concepts
+command.ts ×1
56 tests · 1929 LOC · 18 files · introduces 0 tests · 5 LOC · 1 file
lib 7 concepts
+argsert.ts ×1
791 tests · 97 LOC · 3 files · introduces 1 test · 1 LOC · 1 file
lib 5 concepts
lib 5 concepts
lib 3 concepts
+argsert.ts ×3
797 tests · 92 LOC · 3 files · introduces 0 tests · 6 LOC · 1 file
+argsert.ts ×4
802 tests · 58 LOC · 3 files · introduces 0 tests · 27 LOC · 1 file
lib 3 concepts
lib 2 concepts
+command.ts ×1
1 test · 2816 LOC · 18 files · introduces 1 test · 2 LOC · 1 file
+command.ts ×1
1 test · 2815 LOC · 18 files · introduces 1 test · 1 LOC · 1 file
Hubs
Substrate hubs are foundational concepts whose intent includes at least 90% of all collected tests. The percentage is breadth, not a quality score.
Open hubs
Substrate hubs
| Concept | Intent share |
| yerror.ts ×2 809 tests · 4 LOC · 1 file · introduces 0 tests · 4 LOC · 1 file |
99% |
| parse-command.ts ×2 804 tests · 14 LOC · 1 file · introduces 0 tests · 14 LOC · 1 file |
98% |
| argsert.ts ×3 803 tests · 31 LOC · 3 files · introduces 0 tests · 13 LOC · 1 file |
98% |
| argsert.ts ×4 802 tests · 58 LOC · 3 files · introduces 0 tests · 27 LOC · 1 file |
98% |
| parse-command.ts ×1 802 tests · 20 LOC · 1 file · introduces 1 test · 6 LOC · 1 file |
98% |
| parse-command.ts ×3 801 tests · 83 LOC · 3 files · introduces 0 tests · 19 LOC · 2 files |
98% |
| argsert.ts ×1 801 tests · 61 LOC · 3 files · introduces 0 tests · 3 LOC · 1 file |
98% |
| parse-command.ts ×1 798 tests · 88 LOC · 3 files · introduces 0 tests · 5 LOC · 1 file |
97% |
| process-argv.ts ×5 797 tests · 13 LOC · 1 file · introduces 3 tests · 13 LOC · 1 file |
97% |
| argsert.ts ×3 797 tests · 92 LOC · 3 files · introduces 0 tests · 6 LOC · 1 file |
97% |
Load-bearing concepts
| Concept | Test packages |
| yerror.ts ×2 809 tests · 4 LOC · 1 file · introduces 0 tests · 4 LOC · 1 file |
10 packages |
| parse-command.ts ×2 804 tests · 14 LOC · 1 file · introduces 0 tests · 14 LOC · 1 file |
10 packages |
| argsert.ts ×3 803 tests · 31 LOC · 3 files · introduces 0 tests · 13 LOC · 1 file |
10 packages |
| argsert.ts ×4 802 tests · 58 LOC · 3 files · introduces 0 tests · 27 LOC · 1 file |
10 packages |
| parse-command.ts ×1 802 tests · 20 LOC · 1 file · introduces 1 test · 6 LOC · 1 file |
10 packages |
| argsert.ts ×1 801 tests · 61 LOC · 3 files · introduces 0 tests · 3 LOC · 1 file |
10 packages |
| parse-command.ts ×3 801 tests · 83 LOC · 3 files · introduces 0 tests · 19 LOC · 2 files |
10 packages |
| parse-command.ts ×1 798 tests · 88 LOC · 3 files · introduces 0 tests · 5 LOC · 1 file |
10 packages |
| argsert.ts ×3 797 tests · 92 LOC · 3 files · introduces 0 tests · 6 LOC · 1 file |
10 packages |
| process-argv.ts ×5 797 tests · 13 LOC · 1 file · introduces 3 tests · 13 LOC · 1 file |
10 packages |
Largest code-introducing concepts
| Concept | Introduced ranges |
| yargs-factory.ts ×124 788 tests · 1203 LOC · 18 files · introduces 1 test · 1015 LOC · 10 files |
197 ranges |
| yargs-factory.ts ×35 787 tests · 1896 LOC · 18 files · introduces 0 tests · 577 LOC · 8 files |
93 ranges |
| yargs-factory.ts ×28 262 tests · 1977 LOC · 18 files · introduces 0 tests · 76 LOC · 1 file |
28 ranges |
| usage.ts ×19 417 tests · 2190 LOC · 18 files · introduces 0 tests · 125 LOC · 2 files |
20 ranges |
| completion.ts ×19 78 tests · 2283 LOC · 18 files · introduces 0 tests · 75 LOC · 1 file |
19 ranges |
| usage.ts ×17 416 tests · 2342 LOC · 18 files · introduces 0 tests · 142 LOC · 2 files |
18 ranges |
| command.ts ×12 274 tests · 2250 LOC · 18 files · introduces 0 tests · 95 LOC · 1 file |
12 ranges |
| yargs-factory.ts ×9 709 tests · 1984 LOC · 18 files · introduces 0 tests · 72 LOC · 2 files |
10 ranges |
| command.ts ×8 215 tests · 2444 LOC · 18 files · introduces 0 tests · 55 LOC · 2 files |
9 ranges |
| yargs-factory.ts ×5 692 tests · 2060 LOC · 18 files · introduces 0 tests · 66 LOC · 4 files |
8 ranges |
Largest test-introducing concepts
| Concept | Introduced tests |
| yargs-factory.ts ×1 453 tests · 1902 LOC · 18 files · introduces 9 tests · 1 LOC · 1 file |
9 tests |
| validation.mjs|title=validation tests choices fails with one invalid value|occurrence=1, validation.mjs|title=validation tests choices fails with case-insensitive value|occurrence=1, +3 5 tests · 2465 LOC · 18 files · introduces 5 tests · 0 LOC · 0 files |
5 tests |
| yargs.mjs|title=yargs dsl tests config extends handles absolute paths|occurrence=1, yargs.mjs|title=yargs dsl tests config extends does not deep merge objects by default|occurrence=1, +3 7 tests · 2433 LOC · 18 files · introduces 5 tests · 0 LOC · 0 files |
5 tests |
| completion.ts ×1 6 tests · 1931 LOC · 18 files · introduces 4 tests · 22 LOC · 2 files |
4 tests |
| yargs-factory.ts ×1 6 tests · 1909 LOC · 18 files · introduces 4 tests · 1 LOC · 1 file |
4 tests |
| command.mjs|title=Command API accepts function as 3rd argument|occurrence=1, command.mjs|title=Command ignores extra spaces in command string|occurrence=1, +2 12 tests · 2032 LOC · 18 files · introduces 4 tests · 0 LOC · 0 files |
4 tests |
| command.mjs|title=Command API accepts module (with command array) as 1st argument|occurrence=1, command.mjs|title=Command API accepts module (with command array and aliases array) as 1st argument|occurrence=1, +2 4 tests · 2056 LOC · 18 files · introduces 4 tests · 0 LOC · 0 files |
4 tests |
| completion, --get-yargs-completions, …) completes single digit options with two dashes|occurrence=1, completion, --get-yargs-completions, …) completes short options with a single dash when the user did not already enter two dashes|occurrence=1, +2 4 tests · 2579 LOC · 18 files · introduces 4 tests · 0 LOC · 0 files |
4 tests |
| yargs.mjs|title=yargs dsl tests parse parses a quoted string|occurrence=1, yargs.mjs|title=yargs dsl tests parse parses a simple string|occurrence=1, +2 120 tests · 2360 LOC · 18 files · introduces 4 tests · 0 LOC · 0 files |
4 tests |
| process-argv.ts ×5 797 tests · 13 LOC · 1 file · introduces 3 tests · 13 LOC · 1 file |
3 tests |
Fragile code
62 single-proof ranges.
| File | Lines | Length | Test |
| lib/yargs-factory.ts |
945-957 |
13 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests version option when an option or alias "version" is set emits warning if version is not disabled|occurrence=1 |
| lib/validation.ts |
419-429 |
11 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/validation.mjs|title=validation tests conflicts fails if conflicting arguments are provided, and strip-dashed is enabled|occurrence=1 |
| lib/yargs-factory.ts |
1518-1527 |
10 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests version option when an option or alias "version" is set emits warning if version is not disabled|occurrence=1 |
| lib/completion.ts |
322-329 |
8 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/completion.mjs|title=Completion completion() if a callback parameter is provided, completions can be asynchronous|occurrence=1 |
| lib/yargs-factory.ts |
1575-1581 |
7 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/yargs.mjs|title=yargs dsl tests should use bin name for $0, eliminating path|occurrence=1 |
| lib/yargs-factory.ts |
595-600 |
6 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/yargs.mjs|title=yargs dsl tests pkgConf combines yargs defaults with package.json values|occurrence=1 |
| lib/yargs-factory.ts |
1252-1257 |
6 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests demand options using .demand() using .require() missing argument message given if one command and an argument not on the list are provided|occurrence=1 |
| lib/command.ts |
115-119 |
5 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command commandDir derives 'command' string from filename when not exported|occurrence=1 |
| lib/yargs-factory.ts |
382-386 |
5 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/yargs.mjs|title=yargs dsl tests .coerce() supports object arg (as map of multiple options)|occurrence=1 |
| lib/yargs-factory.ts |
1315-1319 |
5 |
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests async builder shows appropriate usage instructions for nested command|occurrence=1 |
Surprising connections
Concepts with few tests spanning multiple packages
| Concept | Packages | Tests |
| apply-extends.ts ×1 1 test · 2420 LOC · 18 files · introduces 1 test · 4 LOC · 1 file |
3 · lib, lib/typings, lib/utils |
1 |
| apply-extends.ts ×1 1 test · 1979 LOC · 18 files · introduces 1 test · 2 LOC · 1 file |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command API accepts array, string as first 2 arguments|occurrence=1 1 test · 2032 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command API accepts module (missing describe, builder function) as 1st argument|occurrence=1 1 test · 2045 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command allows command handler to be invoked repeatedly when help is enabled|occurrence=1 1 test · 3122 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command async builder allows command to be defined in async builder|occurrence=1 1 test · 3271 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command async builder allows deeply nested command to be defined in async builder|occurrence=1 1 test · 3252 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command async builder allows positionals to be configured asynchronously|occurrence=1 1 test · 3442 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command async builder does not print to stdout when parse callback is provided|occurrence=1 1 test · 2969 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |
| command.mjs|title=Command async displays error and appropriate help message when handler fails|occurrence=1 1 test · 3265 LOC · 18 files · introduces 1 test · 0 LOC · 0 files |
3 · lib, lib/typings, lib/utils |
1 |