tstyche 1.0.0-beta.6 → 1.0.0-beta.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.
- package/CHANGELOG.md +15 -0
- package/README.md +3 -3
- package/build/tstyche.d.ts +108 -71
- package/build/tstyche.js +679 -577
- package/package.json +21 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.0-beta.7] - 2023-12-29
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **Breaking!** Add new `Expect` class to validate provided values and orchestrate matchers logic ([#39](https://github.com/tstyche/tstyche/pull/39))
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **New!** Load local language service plugins to support files like `.svelte` or `.vue` ([#56](https://github.com/tstyche/tstyche/pull/56))
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Make the source argument checks stricter for the `.toHaveProperty()` matcher ([#46](https://github.com/tstyche/tstyche/pull/46))
|
|
16
|
+
|
|
3
17
|
## [1.0.0-beta.6] - 2023-12-03
|
|
4
18
|
|
|
5
19
|
### Added
|
|
@@ -65,6 +79,7 @@
|
|
|
65
79
|
|
|
66
80
|
_First pre-release._
|
|
67
81
|
|
|
82
|
+
[1.0.0-beta.7]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-beta.7
|
|
68
83
|
[1.0.0-beta.6]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-beta.6
|
|
69
84
|
[1.0.0-beta.5]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-beta.5
|
|
70
85
|
[1.0.0-beta.4]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-beta.4
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[![version][version-src]][version-href]
|
|
4
4
|
[![license][license-src]][license-href]
|
|
5
|
-
[![
|
|
5
|
+
[![packagephobia][packagephobia-src]][packagephobia-href]
|
|
6
6
|
[![coverage][coverage-src]][coverage-href]
|
|
7
7
|
|
|
8
8
|
The Essential Type Testing Tool.
|
|
@@ -83,7 +83,7 @@ Visit [https://tstyche.org](https://tstyche.org) to view the full documentation.
|
|
|
83
83
|
[version-href]: https://npmjs.com/package/tstyche
|
|
84
84
|
[license-src]: https://badgen.net/github/license/tstyche/tstyche
|
|
85
85
|
[license-href]: https://github.com/tstyche/tstyche/blob/main/LICENSE.md
|
|
86
|
-
[
|
|
87
|
-
[
|
|
86
|
+
[packagephobia-src]: https://badgen.net/packagephobia/install/tstyche
|
|
87
|
+
[packagephobia-href]: https://packagephobia.com/result?p=tstyche
|
|
88
88
|
[coverage-src]: https://badgen.net/codecov/c/github/tstyche/tstyche
|
|
89
89
|
[coverage-href]: https://app.codecov.io/gh/tstyche/tstyche
|
package/build/tstyche.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ declare class Diagnostic {
|
|
|
23
23
|
constructor(text: string | Array<string>, category: DiagnosticCategory, origin?: DiagnosticOrigin | undefined);
|
|
24
24
|
add(options: {
|
|
25
25
|
code?: string;
|
|
26
|
+
origin?: DiagnosticOrigin;
|
|
26
27
|
related?: Array<Diagnostic>;
|
|
27
28
|
}): this;
|
|
28
29
|
static error(text: string | Array<string>, origin?: DiagnosticOrigin): Diagnostic;
|
|
@@ -39,18 +40,12 @@ declare class StoreService {
|
|
|
39
40
|
install(tag: string, signal?: AbortSignal): Promise<string | undefined>;
|
|
40
41
|
load(tag: string, signal?: AbortSignal): Promise<typeof ts | undefined>;
|
|
41
42
|
open(signal?: AbortSignal): Promise<void>;
|
|
42
|
-
prune()
|
|
43
|
+
prune: () => Promise<void>;
|
|
43
44
|
resolveTag(tag: string): string | undefined;
|
|
44
45
|
update(signal?: AbortSignal): Promise<void>;
|
|
45
46
|
validateTag(tag: string): boolean;
|
|
46
47
|
}
|
|
47
48
|
|
|
48
|
-
interface TypeChecker extends ts.TypeChecker {
|
|
49
|
-
isTypeAssignableTo?: (source: ts.Type, target: ts.Type) => boolean;
|
|
50
|
-
isTypeIdenticalTo?: (source: ts.Type, target: ts.Type) => boolean;
|
|
51
|
-
isTypeSubtypeOf?: (source: ts.Type, target: ts.Type) => boolean;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
49
|
declare enum OptionBrand {
|
|
55
50
|
String = "string",
|
|
56
51
|
Number = "number",
|
|
@@ -210,9 +205,10 @@ declare class TSTyche {
|
|
|
210
205
|
run(testFiles: Array<string | URL>): Promise<void>;
|
|
211
206
|
}
|
|
212
207
|
|
|
213
|
-
declare
|
|
214
|
-
|
|
215
|
-
|
|
208
|
+
declare class Cli {
|
|
209
|
+
#private;
|
|
210
|
+
constructor(process: NodeJS.Process);
|
|
211
|
+
run(commandLineArgs: Array<string>): Promise<void>;
|
|
216
212
|
}
|
|
217
213
|
|
|
218
214
|
declare enum TestMemberBrand {
|
|
@@ -233,9 +229,8 @@ declare class TestTree {
|
|
|
233
229
|
compiler: typeof ts;
|
|
234
230
|
diagnostics: Array<ts.Diagnostic>;
|
|
235
231
|
sourceFile: ts.SourceFile;
|
|
236
|
-
typeChecker?: TypeChecker | undefined;
|
|
237
232
|
members: Array<TestMember | Assertion>;
|
|
238
|
-
constructor(compiler: typeof ts, diagnostics: Array<ts.Diagnostic>, sourceFile: ts.SourceFile
|
|
233
|
+
constructor(compiler: typeof ts, diagnostics: Array<ts.Diagnostic>, sourceFile: ts.SourceFile);
|
|
239
234
|
get hasOnly(): boolean;
|
|
240
235
|
}
|
|
241
236
|
|
|
@@ -249,7 +244,6 @@ declare class TestMember {
|
|
|
249
244
|
diagnostics: Array<ts.Diagnostic>;
|
|
250
245
|
members: Array<TestMember | Assertion>;
|
|
251
246
|
name: string;
|
|
252
|
-
typeChecker?: TypeChecker | undefined;
|
|
253
247
|
constructor(brand: TestMemberBrand, node: ts.CallExpression, parent: TestTree | TestMember, flags: TestMemberFlags);
|
|
254
248
|
get ancestorNames(): Array<string>;
|
|
255
249
|
validate(): Array<Diagnostic>;
|
|
@@ -268,16 +262,8 @@ declare class Assertion extends TestMember {
|
|
|
268
262
|
constructor(brand: TestMemberBrand, node: ts.CallExpression, parent: TestTree | TestMember, flags: TestMemberFlags, matcherNode: MatcherNode, modifierNode: ts.PropertyAccessExpression, notNode: ts.PropertyAccessExpression | undefined);
|
|
269
263
|
get ancestorNames(): Array<string>;
|
|
270
264
|
get matcherName(): ts.MemberName;
|
|
271
|
-
get
|
|
272
|
-
get
|
|
273
|
-
source: AssertionSource;
|
|
274
|
-
type: ts.Type;
|
|
275
|
-
} | undefined;
|
|
276
|
-
get targetArguments(): ts.NodeArray<ts.Expression>;
|
|
277
|
-
get targetType(): {
|
|
278
|
-
source: AssertionSource;
|
|
279
|
-
type: ts.Type;
|
|
280
|
-
} | undefined;
|
|
265
|
+
get source(): ts.NodeArray<ts.Expression> | ts.NodeArray<ts.TypeNode>;
|
|
266
|
+
get target(): ts.NodeArray<ts.Expression> | ts.NodeArray<ts.TypeNode>;
|
|
281
267
|
}
|
|
282
268
|
|
|
283
269
|
declare class CollectService {
|
|
@@ -287,21 +273,7 @@ declare class CollectService {
|
|
|
287
273
|
readonly modifierIdentifiers: string[];
|
|
288
274
|
readonly notIdentifier = "not";
|
|
289
275
|
constructor(compiler: typeof ts);
|
|
290
|
-
createTestTree(sourceFile: ts.SourceFile, semanticDiagnostics?: Array<ts.Diagnostic
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
declare class Checker {
|
|
294
|
-
#private;
|
|
295
|
-
compiler: typeof ts;
|
|
296
|
-
constructor(compiler: typeof ts);
|
|
297
|
-
explain(assertion: Assertion): Array<Diagnostic>;
|
|
298
|
-
match(assertion: Assertion): boolean;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
declare class Cli {
|
|
302
|
-
#private;
|
|
303
|
-
constructor(process: NodeJS.Process);
|
|
304
|
-
run(commandLineArgs: Array<string>): Promise<void>;
|
|
276
|
+
createTestTree(sourceFile: ts.SourceFile, semanticDiagnostics?: Array<ts.Diagnostic>): TestTree;
|
|
305
277
|
}
|
|
306
278
|
|
|
307
279
|
declare class Environment {
|
|
@@ -481,6 +453,89 @@ declare class EventEmitter {
|
|
|
481
453
|
static removeHandler(handler: EventHandler): void;
|
|
482
454
|
}
|
|
483
455
|
|
|
456
|
+
interface MatchResult {
|
|
457
|
+
explain: () => Array<Diagnostic>;
|
|
458
|
+
isMatch: boolean;
|
|
459
|
+
}
|
|
460
|
+
interface TypeChecker extends ts.TypeChecker {
|
|
461
|
+
isTypeAssignableTo: (source: ts.Type, target: ts.Type) => boolean;
|
|
462
|
+
isTypeIdenticalTo: (source: ts.Type, target: ts.Type) => boolean;
|
|
463
|
+
isTypeSubtypeOf: (source: ts.Type, target: ts.Type) => boolean;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
declare class PrimitiveTypeMatcher {
|
|
467
|
+
#private;
|
|
468
|
+
typeChecker: TypeChecker;
|
|
469
|
+
constructor(typeChecker: TypeChecker, targetTypeFlag: ts.TypeFlags, targetTypeText: string);
|
|
470
|
+
match(sourceType: ts.Type, isNot: boolean): MatchResult;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
declare class ToBeAssignable {
|
|
474
|
+
#private;
|
|
475
|
+
typeChecker: TypeChecker;
|
|
476
|
+
constructor(typeChecker: TypeChecker);
|
|
477
|
+
match(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): MatchResult;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
declare class ToEqual {
|
|
481
|
+
#private;
|
|
482
|
+
typeChecker: TypeChecker;
|
|
483
|
+
constructor(typeChecker: TypeChecker);
|
|
484
|
+
match(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): MatchResult;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
declare class ToHaveProperty {
|
|
488
|
+
#private;
|
|
489
|
+
compiler: typeof ts;
|
|
490
|
+
typeChecker: TypeChecker;
|
|
491
|
+
constructor(compiler: typeof ts, typeChecker: TypeChecker);
|
|
492
|
+
match(sourceType: ts.Type, targetType: ts.StringLiteralType | ts.NumberLiteralType | ts.UniqueESSymbolType, isNot: boolean): MatchResult;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
declare class ToMatch {
|
|
496
|
+
#private;
|
|
497
|
+
typeChecker: TypeChecker;
|
|
498
|
+
constructor(typeChecker: TypeChecker);
|
|
499
|
+
match(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): MatchResult;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
declare class ToRaiseError {
|
|
503
|
+
#private;
|
|
504
|
+
compiler: typeof ts;
|
|
505
|
+
typeChecker: TypeChecker;
|
|
506
|
+
constructor(compiler: typeof ts, typeChecker: TypeChecker);
|
|
507
|
+
match(source: {
|
|
508
|
+
diagnostics: Array<ts.Diagnostic>;
|
|
509
|
+
node: ts.Expression | ts.TypeNode;
|
|
510
|
+
}, targetTypes: Array<ts.StringLiteralType | ts.NumberLiteralType>, isNot: boolean): MatchResult;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
declare class Expect {
|
|
514
|
+
#private;
|
|
515
|
+
compiler: typeof ts;
|
|
516
|
+
typeChecker: TypeChecker;
|
|
517
|
+
toBeAny: PrimitiveTypeMatcher;
|
|
518
|
+
toBeAssignable: ToBeAssignable;
|
|
519
|
+
toBeBigInt: PrimitiveTypeMatcher;
|
|
520
|
+
toBeBoolean: PrimitiveTypeMatcher;
|
|
521
|
+
toBeNever: PrimitiveTypeMatcher;
|
|
522
|
+
toBeNull: PrimitiveTypeMatcher;
|
|
523
|
+
toBeNumber: PrimitiveTypeMatcher;
|
|
524
|
+
toBeString: PrimitiveTypeMatcher;
|
|
525
|
+
toBeSymbol: PrimitiveTypeMatcher;
|
|
526
|
+
toBeUndefined: PrimitiveTypeMatcher;
|
|
527
|
+
toBeUniqueSymbol: PrimitiveTypeMatcher;
|
|
528
|
+
toBeUnknown: PrimitiveTypeMatcher;
|
|
529
|
+
toBeVoid: PrimitiveTypeMatcher;
|
|
530
|
+
toEqual: ToEqual;
|
|
531
|
+
toHaveProperty: ToHaveProperty;
|
|
532
|
+
toMatch: ToMatch;
|
|
533
|
+
toRaiseError: ToRaiseError;
|
|
534
|
+
constructor(compiler: typeof ts, typeChecker: TypeChecker);
|
|
535
|
+
static assertTypeChecker(typeChecker: ts.TypeChecker): typeChecker is TypeChecker;
|
|
536
|
+
match(assertion: Assertion, expectResult: ExpectResult): MatchResult | undefined;
|
|
537
|
+
}
|
|
538
|
+
|
|
484
539
|
/**
|
|
485
540
|
* Options to configure an instance of the {@link Logger}.
|
|
486
541
|
*/
|
|
@@ -554,17 +609,6 @@ declare class TaskRunner {
|
|
|
554
609
|
run(testFiles: Array<URL>, target: Array<string>, signal?: AbortSignal): Promise<Result>;
|
|
555
610
|
}
|
|
556
611
|
|
|
557
|
-
declare enum Color {
|
|
558
|
-
Reset = "0",
|
|
559
|
-
Red = "31",
|
|
560
|
-
Green = "32",
|
|
561
|
-
Yellow = "33",
|
|
562
|
-
Blue = "34",
|
|
563
|
-
Magenta = "35",
|
|
564
|
-
Cyan = "36",
|
|
565
|
-
Gray = "90"
|
|
566
|
-
}
|
|
567
|
-
|
|
568
612
|
declare function addsPackageStepText(compilerVersion: string, installationPath: string): JSX.Element;
|
|
569
613
|
|
|
570
614
|
declare function describeNameText(name: string, indent?: number): JSX.Element;
|
|
@@ -575,16 +619,9 @@ declare function fileStatusText(status: FileResultStatus, testFile: URL): JSX.El
|
|
|
575
619
|
|
|
576
620
|
declare function fileViewText(lines: Array<JSX.Element>, addEmptyFinalLine: boolean): JSX.Element;
|
|
577
621
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
indent?: number;
|
|
582
|
-
}
|
|
583
|
-
declare class Line implements JSX.ElementClass {
|
|
584
|
-
readonly props: LineProps;
|
|
585
|
-
constructor(props: LineProps);
|
|
586
|
-
render(): JSX.Element;
|
|
587
|
-
}
|
|
622
|
+
declare function formattedText(input: string | Array<string> | Record<string, unknown>): JSX.Element;
|
|
623
|
+
|
|
624
|
+
declare function helpText(optionDefinitions: Map<string, OptionDefinition>, tstycheVersion: string): JSX.Element;
|
|
588
625
|
|
|
589
626
|
declare function summaryText({ duration, expectCount, fileCount, onlyMatch, pathMatch, skipMatch, targetCount, testCount, }: {
|
|
590
627
|
duration: number;
|
|
@@ -599,21 +636,21 @@ declare function summaryText({ duration, expectCount, fileCount, onlyMatch, path
|
|
|
599
636
|
|
|
600
637
|
declare function testNameText(status: "fail" | "pass" | "skip" | "todo", name: string, indent?: number): JSX.Element;
|
|
601
638
|
|
|
602
|
-
interface TextProps {
|
|
603
|
-
children?: JSX.ElementChildrenAttribute["children"];
|
|
604
|
-
color?: Color | undefined;
|
|
605
|
-
indent?: number | undefined;
|
|
606
|
-
}
|
|
607
|
-
declare class Text implements JSX.ElementClass {
|
|
608
|
-
readonly props: TextProps;
|
|
609
|
-
constructor(props: TextProps);
|
|
610
|
-
render(): JSX.Element;
|
|
611
|
-
}
|
|
612
|
-
|
|
613
639
|
declare function usesCompilerStepText(compilerVersion: string, tsconfigFilePath: string | undefined, options?: {
|
|
614
640
|
prependEmptyLine: boolean;
|
|
615
641
|
}): JSX.Element;
|
|
616
642
|
|
|
643
|
+
declare enum Color {
|
|
644
|
+
Reset = "0",
|
|
645
|
+
Red = "31",
|
|
646
|
+
Green = "32",
|
|
647
|
+
Yellow = "33",
|
|
648
|
+
Blue = "34",
|
|
649
|
+
Magenta = "35",
|
|
650
|
+
Cyan = "36",
|
|
651
|
+
Gray = "90"
|
|
652
|
+
}
|
|
653
|
+
|
|
617
654
|
type ElementChildren = Array<ElementChildren> | JSX.Element | string | undefined;
|
|
618
655
|
type ComponentConstructor = new (props: Record<string, unknown>) => JSX.ElementClass;
|
|
619
656
|
declare global {
|
|
@@ -676,4 +713,4 @@ declare class Scribbler {
|
|
|
676
713
|
render(element: JSX.Element | null): string;
|
|
677
714
|
}
|
|
678
715
|
|
|
679
|
-
export { Assertion,
|
|
716
|
+
export { Assertion, Cli, CollectService, type CommandLineOptions, type ConfigFileOptions, ConfigService, DescribeResult, Diagnostic, DiagnosticCategory, type DiagnosticOrigin, Environment, type Event, EventEmitter, type EventHandler, Expect, ExpectResult, FileResult, type FileResultStatus, type ItemDefinition, Logger, type LoggerOptions, type MatchResult, OptionBrand, type OptionDefinition, OptionDefinitionsMap, OptionGroup, ProjectResult, ProjectService, Reporter, type ResolvedConfig, Result, ResultCount, ResultManager, ResultStatus, ResultTiming, Scribbler, type ScribblerOptions, StoreService, SummaryReporter, TSTyche, TargetResult, TaskRunner, TestMember, TestMemberBrand, TestMemberFlags, TestResult, TestTree, ThoroughReporter, type TypeChecker, addsPackageStepText, describeNameText, diagnosticText, fileStatusText, fileViewText, formattedText, helpText, summaryText, testNameText, usesCompilerStepText };
|