@travetto/test 5.0.0-rc.0 → 5.0.0-rc.10

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 (43) hide show
  1. package/README.md +12 -13
  2. package/package.json +8 -8
  3. package/src/assert/capture.ts +5 -4
  4. package/src/assert/check.ts +24 -33
  5. package/src/assert/util.ts +32 -17
  6. package/src/consumer/registry.ts +2 -3
  7. package/src/consumer/{error.ts → serialize.ts} +13 -22
  8. package/src/consumer/types/cumulative.ts +15 -22
  9. package/src/consumer/types/delegating.ts +58 -0
  10. package/src/consumer/types/event.ts +2 -4
  11. package/src/consumer/types/execution.ts +2 -4
  12. package/src/consumer/types/runnable.ts +12 -41
  13. package/src/consumer/types/tap-streamed.ts +9 -6
  14. package/src/consumer/types/tap.ts +5 -5
  15. package/src/consumer/types/xunit.ts +4 -2
  16. package/src/decorator/suite.ts +5 -7
  17. package/src/decorator/test.ts +2 -1
  18. package/src/execute/console.ts +1 -1
  19. package/src/execute/executor.ts +84 -104
  20. package/src/execute/phase.ts +20 -30
  21. package/src/execute/promise.ts +4 -4
  22. package/src/execute/runner.ts +34 -24
  23. package/src/execute/types.ts +12 -10
  24. package/src/execute/util.ts +61 -34
  25. package/src/execute/watcher.ts +34 -36
  26. package/src/fixture.ts +7 -2
  27. package/src/model/common.ts +11 -7
  28. package/src/model/event.ts +9 -5
  29. package/src/model/suite.ts +14 -4
  30. package/src/model/test.ts +30 -4
  31. package/src/registry/suite.ts +42 -39
  32. package/src/trv.d.ts +3 -3
  33. package/src/worker/child.ts +11 -18
  34. package/src/worker/standard.ts +18 -21
  35. package/src/worker/types.ts +13 -10
  36. package/support/cli.test.ts +20 -6
  37. package/support/cli.test_child.ts +1 -1
  38. package/support/cli.test_digest.ts +43 -0
  39. package/support/cli.test_direct.ts +10 -3
  40. package/support/cli.test_watch.ts +1 -1
  41. package/support/transformer.assert.ts +12 -12
  42. package/support/cli.test_count.ts +0 -39
  43. package/support/transformer.annotate.ts +0 -103
@@ -1,103 +0,0 @@
1
- import ts from 'typescript';
2
-
3
- import {
4
- TransformerState, DecoratorMeta, OnMethod, OnClass, CoreUtil, DecoratorUtil
5
- } from '@travetto/transformer';
6
-
7
- const RUN_UTIL = 'RunnerUtil';
8
-
9
- const RunUtilⲐ = Symbol.for('@travetto/test:runner');
10
-
11
- /**
12
- * Annotate transformation state
13
- */
14
- interface AnnotateState {
15
- [RunUtilⲐ]?: ts.Expression;
16
- }
17
-
18
- /**
19
- * Annotate tests and suites for better diagnostics
20
- */
21
- export class AnnotationTransformer {
22
-
23
-
24
- /**
25
- * Initialize transformer state
26
- */
27
- static initState(state: TransformerState & AnnotateState): void {
28
- if (!state[RunUtilⲐ]) {
29
- const runUtil = state.importFile('@travetto/test/src/execute/util').ident;
30
- state[RunUtilⲐ] = CoreUtil.createAccess(state.factory, runUtil, RUN_UTIL, 'tryDebugger');
31
- }
32
- }
33
-
34
- /**
35
- * Build source annotation, indicating line ranges
36
- * @param state
37
- * @param node
38
- * @param dec
39
- */
40
- static buildAnnotation(state: TransformerState & AnnotateState, node: ts.Node, dec: ts.Decorator, expression: ts.CallExpression): ts.Decorator {
41
- const ogN = (CoreUtil.hasOriginal(node) ? node.original : node);
42
- const n = ts.isMethodDeclaration(ogN) ? ogN : undefined;
43
-
44
- const newDec = state.factory.updateDecorator(
45
- dec,
46
- state.factory.createCallExpression(
47
- expression.expression,
48
- expression.typeArguments,
49
- [
50
- ...(expression.arguments ?? []),
51
- state.fromLiteral({
52
- ident: `@${DecoratorUtil.getDecoratorIdent(dec).text}()`,
53
- lineBodyStart: CoreUtil.getRangeOf(state.source, n?.body?.statements[0])?.[0]
54
- })
55
- ]
56
- )
57
- );
58
- return newDec;
59
- }
60
-
61
- @OnClass('Suite')
62
- static annotateSuiteDetails(state: TransformerState & AnnotateState, node: ts.ClassDeclaration, dm?: DecoratorMeta): ts.ClassDeclaration {
63
- const dec = dm?.dec;
64
-
65
- if (dec && ts.isCallExpression(dec.expression)) {
66
- const newDec = this.buildAnnotation(state, node, dec, dec.expression);
67
- return state.factory.updateClassDeclaration(node,
68
- DecoratorUtil.spliceDecorators(node, dec, [newDec]),
69
- node.name,
70
- node.typeParameters,
71
- node.heritageClauses,
72
- node.members
73
- );
74
- }
75
- return node;
76
- }
77
-
78
- @OnMethod('Test')
79
- static annotateTestDetails(state: TransformerState & AnnotateState, node: ts.MethodDeclaration, dm?: DecoratorMeta): ts.MethodDeclaration {
80
- this.initState(state);
81
-
82
- const dec = dm?.dec;
83
-
84
- if (dec && ts.isCallExpression(dec.expression)) {
85
- const newDec = this.buildAnnotation(state, node, dec, dec.expression);
86
- return state.factory.updateMethodDeclaration(node,
87
- DecoratorUtil.spliceDecorators(node, dec, [newDec]),
88
- node.asteriskToken,
89
- node.name,
90
- node.questionToken,
91
- node.typeParameters,
92
- node.parameters,
93
- node.type,
94
- node.body ? state.factory.updateBlock(node.body, [
95
- state.factory.createIfStatement(state[RunUtilⲐ]!,
96
- state.factory.createExpressionStatement(state.factory.createIdentifier('debugger'))),
97
- ...node.body.statements
98
- ]) : node.body
99
- );
100
- }
101
- return node;
102
- }
103
- }