vitest 0.2.2 → 0.2.6

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.
@@ -0,0 +1,99 @@
1
+ import { util } from 'chai';
2
+ import * as tinyspy from 'tinyspy';
3
+
4
+ const spies = new Set();
5
+ function isMockFunction(fn2) {
6
+ return typeof fn2 === "function" && "__isSpy" in fn2 && fn2.__isSpy;
7
+ }
8
+ function spyOn(obj, method, accessType) {
9
+ const dictionary = {
10
+ get: "getter",
11
+ set: "setter"
12
+ };
13
+ const objMethod = accessType ? { [dictionary[accessType]]: method } : method;
14
+ const stub = tinyspy.spyOn(obj, objMethod);
15
+ return enhanceSpy(stub);
16
+ }
17
+ let callOrder = 0;
18
+ function enhanceSpy(spy) {
19
+ const stub = spy;
20
+ let implementation;
21
+ let instances = [];
22
+ let invocations = [];
23
+ const mockContext = {
24
+ get calls() {
25
+ return stub.calls;
26
+ },
27
+ get instances() {
28
+ return instances;
29
+ },
30
+ get invocationCallOrder() {
31
+ return invocations;
32
+ },
33
+ get results() {
34
+ return stub.results.map(([callType, value]) => {
35
+ const type = callType === "error" ? "throw" : "return";
36
+ return { type, value };
37
+ });
38
+ }
39
+ };
40
+ let onceImplementations = [];
41
+ let name = stub.name;
42
+ stub.getMockName = () => name || "vi.fn()";
43
+ stub.mockName = (n) => {
44
+ name = n;
45
+ return stub;
46
+ };
47
+ stub.mockClear = () => {
48
+ stub.reset();
49
+ instances = [];
50
+ invocations = [];
51
+ return stub;
52
+ };
53
+ stub.mockReset = () => {
54
+ stub.mockClear();
55
+ implementation = () => void 0;
56
+ onceImplementations = [];
57
+ return stub;
58
+ };
59
+ stub.mockRestore = () => {
60
+ stub.mockReset();
61
+ implementation = void 0;
62
+ return stub;
63
+ };
64
+ stub.getMockImplementation = () => implementation;
65
+ stub.mockImplementation = (fn2) => {
66
+ implementation = fn2;
67
+ return stub;
68
+ };
69
+ stub.mockImplementationOnce = (fn2) => {
70
+ onceImplementations.push(fn2);
71
+ return stub;
72
+ };
73
+ stub.mockReturnThis = () => stub.mockImplementation(function() {
74
+ return this;
75
+ });
76
+ stub.mockReturnValue = (val) => stub.mockImplementation(() => val);
77
+ stub.mockReturnValueOnce = (val) => stub.mockImplementationOnce(() => val);
78
+ stub.mockResolvedValue = (val) => stub.mockImplementation(() => Promise.resolve(val));
79
+ stub.mockResolvedValueOnce = (val) => stub.mockImplementationOnce(() => Promise.resolve(val));
80
+ stub.mockRejectedValue = (val) => stub.mockImplementation(() => Promise.reject(val));
81
+ stub.mockRejectedValueOnce = (val) => stub.mockImplementationOnce(() => Promise.reject(val));
82
+ util.addProperty(stub, "mock", () => mockContext);
83
+ stub.willCall(function(...args) {
84
+ instances.push(this);
85
+ invocations.push(++callOrder);
86
+ const impl = onceImplementations.shift() || implementation || stub.getOriginal() || (() => {
87
+ });
88
+ return impl.apply(this, args);
89
+ });
90
+ spies.add(stub);
91
+ return stub;
92
+ }
93
+ function fn(implementation) {
94
+ return enhanceSpy(tinyspy.spyOn({ fn: implementation || (() => {
95
+ }) }, "fn"));
96
+ }
97
+
98
+ export { fn, isMockFunction, spies, spyOn };
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamVzdC1tb2NrLmpzIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZWdyYXRpb25zL2plc3QtbW9jay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlsIH0gZnJvbSAnY2hhaSdcbmltcG9ydCB0eXBlIHsgU3B5SW1wbCB9IGZyb20gJ3RpbnlzcHknXG5pbXBvcnQgKiBhcyB0aW55c3B5IGZyb20gJ3RpbnlzcHknXG5cbmludGVyZmFjZSBNb2NrUmVzdWx0UmV0dXJuPFQ+IHtcbiAgdHlwZTogJ3JldHVybidcbiAgdmFsdWU6IFRcbn1cbmludGVyZmFjZSBNb2NrUmVzdWx0SW5jb21wbGV0ZSB7XG4gIHR5cGU6ICdpbmNvbXBsZXRlJ1xuICB2YWx1ZTogdW5kZWZpbmVkXG59XG5pbnRlcmZhY2UgTW9ja1Jlc3VsdFRocm93IHtcbiAgdHlwZTogJ3Rocm93J1xuICB2YWx1ZTogYW55XG59XG5cbnR5cGUgTW9ja1Jlc3VsdDxUPiA9IE1vY2tSZXN1bHRSZXR1cm48VD4gfCBNb2NrUmVzdWx0VGhyb3cgfCBNb2NrUmVzdWx0SW5jb21wbGV0ZVxuXG5leHBvcnQgaW50ZXJmYWNlIEplc3RNb2NrQ29tcGF0Q29udGV4dDxUQXJncywgVFJldHVybnM+IHtcbiAgY2FsbHM6IFRBcmdzW11cbiAgaW5zdGFuY2VzOiBUUmV0dXJuc1tdXG4gIGludm9jYXRpb25DYWxsT3JkZXI6IG51bWJlcltdXG4gIHJlc3VsdHM6IE1vY2tSZXN1bHQ8VFJldHVybnM+W11cbn1cblxudHlwZSBQcm9jZWR1cmUgPSAoLi4uYXJnczogYW55W10pID0+IGFueVxuXG50eXBlIE1ldGhvZHM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgUHJvY2VkdXJlID8gSyA6IG5ldmVyXG59W2tleW9mIFRdICYgc3RyaW5nXG50eXBlIFByb3BlcnRpZXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgUHJvY2VkdXJlID8gbmV2ZXIgOiBLXG59W2tleW9mIFRdICYgc3RyaW5nXG50eXBlIENsYXNzZXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55ID8gSyA6IG5ldmVyXG59W2tleW9mIFRdICYgc3RyaW5nXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3B5SW5zdGFuY2U8VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJucyA9IGFueT4ge1xuICBnZXRNb2NrTmFtZSgpOiBzdHJpbmdcbiAgbW9ja05hbWUobjogc3RyaW5nKTogdGhpc1xuICBtb2NrOiBKZXN0TW9ja0NvbXBhdENvbnRleHQ8VEFyZ3MsIFRSZXR1cm5zPlxuICBtb2NrQ2xlYXIoKTogdGhpc1xuICBtb2NrUmVzZXQoKTogdGhpc1xuICBtb2NrUmVzdG9yZSgpOiB2b2lkXG4gIGdldE1vY2tJbXBsZW1lbnRhdGlvbigpOiAoKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJucykgfCB1bmRlZmluZWRcbiAgbW9ja0ltcGxlbWVudGF0aW9uKGZuOiAoKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJucykgfCAoKCkgPT4gUHJvbWlzZTxUUmV0dXJucz4pKTogdGhpc1xuICBtb2NrSW1wbGVtZW50YXRpb25PbmNlKGZuOiAoKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJucykgfCAoKCkgPT4gUHJvbWlzZTxUUmV0dXJucz4pKTogdGhpc1xuICBtb2NrUmV0dXJuVGhpcygpOiB0aGlzXG4gIG1vY2tSZXR1cm5WYWx1ZShvYmo6IFRSZXR1cm5zKTogdGhpc1xuICBtb2NrUmV0dXJuVmFsdWVPbmNlKG9iajogVFJldHVybnMpOiB0aGlzXG4gIG1vY2tSZXNvbHZlZFZhbHVlKG9iajogQXdhaXRlZDxUUmV0dXJucz4pOiB0aGlzXG4gIG1vY2tSZXNvbHZlZFZhbHVlT25jZShvYmo6IEF3YWl0ZWQ8VFJldHVybnM+KTogdGhpc1xuICBtb2NrUmVqZWN0ZWRWYWx1ZShvYmo6IGFueSk6IHRoaXNcbiAgbW9ja1JlamVjdGVkVmFsdWVPbmNlKG9iajogYW55KTogdGhpc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNweUluc3RhbmNlRm48VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueSwgVFJldHVybnMgPSBhbnk+IGV4dGVuZHMgU3B5SW5zdGFuY2U8VEFyZ3MsIFRSZXR1cm5zPiB7XG4gICguLi5hcmdzOiBUQXJncyk6IFRSZXR1cm5zXG59XG5cbmV4cG9ydCB0eXBlIE1heWJlTW9ja2VkQ29uc3RydWN0b3I8VD4gPSBUIGV4dGVuZHMgbmV3IChcbiAgLi4uYXJnczogQXJyYXk8YW55PlxuKSA9PiBpbmZlciBSXG4gID8gU3B5SW5zdGFuY2VGbjxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4sIFI+XG4gIDogVFxuZXhwb3J0IHR5cGUgTW9ja2VkRnVuY3Rpb248VCBleHRlbmRzIFByb2NlZHVyZT4gPSBNb2NrV2l0aEFyZ3M8VD4gJiB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdO1xufVxuZXhwb3J0IHR5cGUgTW9ja2VkRnVuY3Rpb25EZWVwPFQgZXh0ZW5kcyBQcm9jZWR1cmU+ID0gTW9ja1dpdGhBcmdzPFQ+ICYgTW9ja2VkT2JqZWN0RGVlcDxUPlxuZXhwb3J0IHR5cGUgTW9ja2VkT2JqZWN0PFQ+ID0gTWF5YmVNb2NrZWRDb25zdHJ1Y3RvcjxUPiAmIHtcbiAgW0sgaW4gTWV0aG9kczxUPl06IFRbS10gZXh0ZW5kcyBQcm9jZWR1cmVcbiAgICA/IE1vY2tlZEZ1bmN0aW9uPFRbS10+XG4gICAgOiBUW0tdO1xufSAmIHsgW0sgaW4gUHJvcGVydGllczxUPl06IFRbS10gfVxuZXhwb3J0IHR5cGUgTW9ja2VkT2JqZWN0RGVlcDxUPiA9IE1heWJlTW9ja2VkQ29uc3RydWN0b3I8VD4gJiB7XG4gIFtLIGluIE1ldGhvZHM8VD5dOiBUW0tdIGV4dGVuZHMgUHJvY2VkdXJlXG4gICAgPyBNb2NrZWRGdW5jdGlvbkRlZXA8VFtLXT5cbiAgICA6IFRbS107XG59ICYgeyBbSyBpbiBQcm9wZXJ0aWVzPFQ+XTogTWF5YmVNb2NrZWREZWVwPFRbS10+IH1cblxuZXhwb3J0IHR5cGUgTWF5YmVNb2NrZWREZWVwPFQ+ID0gVCBleHRlbmRzIFByb2NlZHVyZVxuICA/IE1vY2tlZEZ1bmN0aW9uRGVlcDxUPlxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgICA/IE1vY2tlZE9iamVjdERlZXA8VD5cbiAgICA6IFRcblxuZXhwb3J0IHR5cGUgTWF5YmVNb2NrZWQ8VD4gPSBUIGV4dGVuZHMgUHJvY2VkdXJlXG4gID8gTW9ja2VkRnVuY3Rpb248VD5cbiAgOiBUIGV4dGVuZHMgb2JqZWN0XG4gICAgPyBNb2NrZWRPYmplY3Q8VD5cbiAgICA6IFRcblxuZXhwb3J0IHR5cGUgRW5oYW5jZWRTcHk8VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJucyA9IGFueT4gPSBTcHlJbnN0YW5jZTxUQXJncywgVFJldHVybnM+ICYgU3B5SW1wbDxUQXJncywgVFJldHVybnM+XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1dpdGhBcmdzPFQgZXh0ZW5kcyBQcm9jZWR1cmU+XG4gIGV4dGVuZHMgU3B5SW5zdGFuY2VGbjxQYXJhbWV0ZXJzPFQ+LCBSZXR1cm5UeXBlPFQ+PiB7XG4gIG5ldyAoLi4uYXJnczogVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBuZXZlcik6IFRcbiAgKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VD4pOiBSZXR1cm5UeXBlPFQ+XG59XG5cbmV4cG9ydCBjb25zdCBzcGllcyA9IG5ldyBTZXQ8U3B5SW5zdGFuY2U+KClcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9ja0Z1bmN0aW9uKGZuOiBhbnkpOiBmbiBpcyBFbmhhbmNlZFNweSB7XG4gIHJldHVybiB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbidcbiAgJiYgJ19faXNTcHknIGluIGZuXG4gICYmIGZuLl9faXNTcHlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNweU9uPFQsIFMgZXh0ZW5kcyBQcm9wZXJ0aWVzPFJlcXVpcmVkPFQ+Pj4oXG4gIG9iajogVCxcbiAgbWV0aG9kTmFtZTogUyxcbiAgYWNjZXNUeXBlOiAnZ2V0Jyxcbik6IFNweUluc3RhbmNlPFtdLCBUW1NdPlxuZXhwb3J0IGZ1bmN0aW9uIHNweU9uPFQsIEcgZXh0ZW5kcyBQcm9wZXJ0aWVzPFJlcXVpcmVkPFQ+Pj4oXG4gIG9iajogVCxcbiAgbWV0aG9kTmFtZTogRyxcbiAgYWNjZXNUeXBlOiAnc2V0Jyxcbik6IFNweUluc3RhbmNlPFtUW0ddXSwgdm9pZD5cbmV4cG9ydCBmdW5jdGlvbiBzcHlPbjxULCBNIGV4dGVuZHMgKE1ldGhvZHM8UmVxdWlyZWQ8VD4+IHwgQ2xhc3NlczxSZXF1aXJlZDxUPj4pPihcbiAgb2JqOiBULFxuICBtZXRob2ROYW1lOiBNLFxuKTogUmVxdWlyZWQ8VD5bTV0gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgQSkgPT4gaW5mZXIgUiB8IChuZXcgKC4uLmFyZ3M6IGluZmVyIEEpID0+IGluZmVyIFIpID8gU3B5SW5zdGFuY2U8QSwgUj4gOiBuZXZlclxuZXhwb3J0IGZ1bmN0aW9uIHNweU9uPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihcbiAgb2JqOiBULFxuICBtZXRob2Q6IEssXG4gIGFjY2Vzc1R5cGU/OiAnZ2V0JyB8ICdzZXQnLFxuKTogU3B5SW5zdGFuY2Uge1xuICBjb25zdCBkaWN0aW9uYXJ5ID0ge1xuICAgIGdldDogJ2dldHRlcicsXG4gICAgc2V0OiAnc2V0dGVyJyxcbiAgfSBhcyBjb25zdFxuICBjb25zdCBvYmpNZXRob2QgPSBhY2Nlc3NUeXBlID8geyBbZGljdGlvbmFyeVthY2Nlc3NUeXBlXV06IG1ldGhvZCB9IDogbWV0aG9kXG5cbiAgY29uc3Qgc3R1YiA9IHRpbnlzcHkuc3B5T24ob2JqLCBvYmpNZXRob2QgYXMgYW55KVxuXG4gIHJldHVybiBlbmhhbmNlU3B5KHN0dWIpIGFzIFNweUluc3RhbmNlXG59XG5cbmxldCBjYWxsT3JkZXIgPSAwXG5cbmZ1bmN0aW9uIGVuaGFuY2VTcHk8VEFyZ3MgZXh0ZW5kcyBhbnlbXSwgVFJldHVybnM+KFxuICBzcHk6IFNweUltcGw8VEFyZ3MsIFRSZXR1cm5zPixcbik6IFNweUluc3RhbmNlPFRBcmdzLCBUUmV0dXJucz4ge1xuICBjb25zdCBzdHViID0gc3B5IGFzIHVua25vd24gYXMgRW5oYW5jZWRTcHk8VEFyZ3MsIFRSZXR1cm5zPlxuXG4gIGxldCBpbXBsZW1lbnRhdGlvbjogKCguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybnMpIHwgdW5kZWZpbmVkXG5cbiAgbGV0IGluc3RhbmNlczogYW55W10gPSBbXVxuICBsZXQgaW52b2NhdGlvbnM6IG51bWJlcltdID0gW11cblxuICBjb25zdCBtb2NrQ29udGV4dCA9IHtcbiAgICBnZXQgY2FsbHMoKSB7XG4gICAgICByZXR1cm4gc3R1Yi5jYWxsc1xuICAgIH0sXG4gICAgZ2V0IGluc3RhbmNlcygpIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZXNcbiAgICB9LFxuICAgIGdldCBpbnZvY2F0aW9uQ2FsbE9yZGVyKCkge1xuICAgICAgcmV0dXJuIGludm9jYXRpb25zXG4gICAgfSxcbiAgICBnZXQgcmVzdWx0cygpIHtcbiAgICAgIHJldHVybiBzdHViLnJlc3VsdHMubWFwKChbY2FsbFR5cGUsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlID0gY2FsbFR5cGUgPT09ICdlcnJvcicgPyAndGhyb3cnIDogJ3JldHVybidcbiAgICAgICAgcmV0dXJuIHsgdHlwZSwgdmFsdWUgfVxuICAgICAgfSlcbiAgICB9LFxuICB9XG5cbiAgbGV0IG9uY2VJbXBsZW1lbnRhdGlvbnM6ICgoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm5zKVtdID0gW11cblxuICBsZXQgbmFtZTogc3RyaW5nID0gKHN0dWIgYXMgYW55KS5uYW1lXG5cbiAgc3R1Yi5nZXRNb2NrTmFtZSA9ICgpID0+IG5hbWUgfHwgJ3ZpLmZuKCknXG4gIHN0dWIubW9ja05hbWUgPSAobikgPT4ge1xuICAgIG5hbWUgPSBuXG4gICAgcmV0dXJuIHN0dWJcbiAgfVxuXG4gIHN0dWIubW9ja0NsZWFyID0gKCkgPT4ge1xuICAgIHN0dWIucmVzZXQoKVxuICAgIGluc3RhbmNlcyA9IFtdXG4gICAgaW52b2NhdGlvbnMgPSBbXVxuICAgIHJldHVybiBzdHViXG4gIH1cblxuICBzdHViLm1vY2tSZXNldCA9ICgpID0+IHtcbiAgICBzdHViLm1vY2tDbGVhcigpXG4gICAgaW1wbGVtZW50YXRpb24gPSAoKSA9PiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBUUmV0dXJuc1xuICAgIG9uY2VJbXBsZW1lbnRhdGlvbnMgPSBbXVxuICAgIHJldHVybiBzdHViXG4gIH1cblxuICBzdHViLm1vY2tSZXN0b3JlID0gKCkgPT4ge1xuICAgIHN0dWIubW9ja1Jlc2V0KClcbiAgICBpbXBsZW1lbnRhdGlvbiA9IHVuZGVmaW5lZFxuICAgIHJldHVybiBzdHViXG4gIH1cblxuICBzdHViLmdldE1vY2tJbXBsZW1lbnRhdGlvbiA9ICgpID0+IGltcGxlbWVudGF0aW9uXG4gIHN0dWIubW9ja0ltcGxlbWVudGF0aW9uID0gKGZuOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm5zKSA9PiB7XG4gICAgaW1wbGVtZW50YXRpb24gPSBmblxuICAgIHJldHVybiBzdHViXG4gIH1cblxuICBzdHViLm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UgPSAoZm46ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybnMpID0+IHtcbiAgICBvbmNlSW1wbGVtZW50YXRpb25zLnB1c2goZm4pXG4gICAgcmV0dXJuIHN0dWJcbiAgfVxuXG4gIHN0dWIubW9ja1JldHVyblRoaXMgPSAoKSA9PlxuICAgIHN0dWIubW9ja0ltcGxlbWVudGF0aW9uKGZ1bmN0aW9uKHRoaXM6IFRSZXR1cm5zKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH0pXG5cbiAgc3R1Yi5tb2NrUmV0dXJuVmFsdWUgPSAodmFsOiBUUmV0dXJucykgPT4gc3R1Yi5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gdmFsKVxuICBzdHViLm1vY2tSZXR1cm5WYWx1ZU9uY2UgPSAodmFsOiBUUmV0dXJucykgPT4gc3R1Yi5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IHZhbClcblxuICBzdHViLm1vY2tSZXNvbHZlZFZhbHVlID0gKHZhbDogQXdhaXRlZDxUUmV0dXJucz4pID0+XG4gICAgc3R1Yi5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHZhbCBhcyBUUmV0dXJucykpXG5cbiAgc3R1Yi5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UgPSAodmFsOiBBd2FpdGVkPFRSZXR1cm5zPikgPT5cbiAgICBzdHViLm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHZhbCBhcyBUUmV0dXJucykpXG5cbiAgc3R1Yi5tb2NrUmVqZWN0ZWRWYWx1ZSA9ICh2YWw6IHVua25vd24pID0+XG4gICAgc3R1Yi5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZWplY3QodmFsKSlcblxuICBzdHViLm1vY2tSZWplY3RlZFZhbHVlT25jZSA9ICh2YWw6IHVua25vd24pID0+XG4gICAgc3R1Yi5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IFByb21pc2UucmVqZWN0KHZhbCkpXG5cbiAgdXRpbC5hZGRQcm9wZXJ0eShzdHViLCAnbW9jaycsICgpID0+IG1vY2tDb250ZXh0KVxuXG4gIHN0dWIud2lsbENhbGwoZnVuY3Rpb24odGhpczogdW5rbm93biwgLi4uYXJncykge1xuICAgIGluc3RhbmNlcy5wdXNoKHRoaXMpXG4gICAgaW52b2NhdGlvbnMucHVzaCgrK2NhbGxPcmRlcilcbiAgICBjb25zdCBpbXBsID0gb25jZUltcGxlbWVudGF0aW9ucy5zaGlmdCgpIHx8IGltcGxlbWVudGF0aW9uIHx8IHN0dWIuZ2V0T3JpZ2luYWwoKSB8fCAoKCkgPT4ge30pXG4gICAgcmV0dXJuIGltcGwuYXBwbHkodGhpcywgYXJncylcbiAgfSlcblxuICBzcGllcy5hZGQoc3R1YilcblxuICByZXR1cm4gc3R1YiBhcyBhbnlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZuPFRBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXSwgUiA9IGFueT4oKTogU3B5SW5zdGFuY2VGbjxUQXJncywgUj5cbmV4cG9ydCBmdW5jdGlvbiBmbjxUQXJncyBleHRlbmRzIGFueVtdID0gYW55W10sIFIgPSBhbnk+KFxuICBpbXBsZW1lbnRhdGlvbjogKC4uLmFyZ3M6IFRBcmdzKSA9PiBSXG4pOiBTcHlJbnN0YW5jZUZuPFRBcmdzLCBSPlxuZXhwb3J0IGZ1bmN0aW9uIGZuPFRBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXSwgUiA9IGFueT4oXG4gIGltcGxlbWVudGF0aW9uPzogKC4uLmFyZ3M6IFRBcmdzKSA9PiBSLFxuKTogU3B5SW5zdGFuY2VGbjxUQXJncywgUj4ge1xuICByZXR1cm4gZW5oYW5jZVNweSh0aW55c3B5LnNweU9uKHsgZm46IGltcGxlbWVudGF0aW9uIHx8ICgoKSA9PiB7fSkgfSwgJ2ZuJykpIGFzIHVua25vd24gYXMgU3B5SW5zdGFuY2VGblxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVZLE1BQUMsS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHO0FBQ3hCLFNBQVMsY0FBYyxDQUFDLEdBQUcsRUFBRTtBQUNwQyxFQUFFLE9BQU8sT0FBTyxHQUFHLEtBQUssVUFBVSxJQUFJLFNBQVMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQztBQUN0RSxDQUFDO0FBQ00sU0FBUyxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7QUFDL0MsRUFBRSxNQUFNLFVBQVUsR0FBRztBQUNyQixJQUFJLEdBQUcsRUFBRSxRQUFRO0FBQ2pCLElBQUksR0FBRyxFQUFFLFFBQVE7QUFDakIsR0FBRyxDQUFDO0FBQ0osRUFBRSxNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFN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
package/dist/node.d.ts CHANGED
@@ -1,11 +1,5 @@
1
- import { Profiler } from 'inspector';
2
1
  import { ViteDevServer, TransformResult, CommonServerOptions, UserConfig as UserConfig$1, Plugin as Plugin$1 } from 'vite';
3
2
 
4
- interface FetchResult {
5
- code?: string;
6
- externalize?: string;
7
- }
8
-
9
3
  interface DepsHandlingOptions {
10
4
  external?: (string | RegExp)[];
11
5
  inline?: (string | RegExp)[];
@@ -15,6 +9,22 @@ interface DepsHandlingOptions {
15
9
  */
16
10
  fallbackCJS?: boolean;
17
11
  }
12
+ interface StartOfSourceMap {
13
+ file?: string;
14
+ sourceRoot?: string;
15
+ }
16
+ interface RawSourceMap extends StartOfSourceMap {
17
+ version: string;
18
+ sources: string[];
19
+ names: string[];
20
+ sourcesContent?: string[];
21
+ mappings: string;
22
+ }
23
+ interface FetchResult {
24
+ code?: string;
25
+ externalize?: string;
26
+ map?: RawSourceMap;
27
+ }
18
28
  interface ViteNodeResolveId {
19
29
  external?: boolean | 'absolute' | 'relative';
20
30
  id: string;
@@ -25,9 +35,9 @@ interface ViteNodeResolveId {
25
35
  interface ViteNodeServerOptions {
26
36
  /**
27
37
  * Inject inline sourcemap to modules
28
- * @default true
38
+ * @default 'inline'
29
39
  */
30
- sourcemap?: boolean;
40
+ sourcemap?: 'inline' | boolean;
31
41
  /**
32
42
  * Deps handling
33
43
  */
@@ -46,7 +56,10 @@ declare class ViteNodeServer {
46
56
  options: ViteNodeServerOptions;
47
57
  private fetchPromiseMap;
48
58
  private transformPromiseMap;
49
- private fetchCache;
59
+ fetchCache: Map<string, {
60
+ timestamp: number;
61
+ result: FetchResult;
62
+ }>;
50
63
  constructor(server: ViteDevServer, options?: ViteNodeServerOptions);
51
64
  shouldExternalize(id: string): Promise<string | false>;
52
65
  resolveId(id: string, importer?: string): Promise<ViteNodeResolveId | null>;
@@ -251,6 +264,38 @@ declare const ReportersMap: {
251
264
  };
252
265
  declare type BuiltinReporters = keyof typeof ReportersMap;
253
266
 
267
+ declare type Awaitable<T> = T | PromiseLike<T>;
268
+ declare type Arrayable<T> = T | Array<T>;
269
+ declare type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never;
270
+ interface UserConsoleLog {
271
+ content: string;
272
+ type: 'stdout' | 'stderr';
273
+ taskId?: string;
274
+ time: number;
275
+ }
276
+ interface Position {
277
+ line: number;
278
+ column: number;
279
+ }
280
+ interface ParsedStack {
281
+ method: string;
282
+ file: string;
283
+ line: number;
284
+ column: number;
285
+ sourcePos?: Position;
286
+ }
287
+ interface ErrorWithDiff extends Error {
288
+ name: string;
289
+ nameStr?: string;
290
+ stack?: string;
291
+ stackStr?: string;
292
+ stacks?: ParsedStack[];
293
+ showDiff?: boolean;
294
+ actual?: any;
295
+ expected?: any;
296
+ operator?: string;
297
+ }
298
+
254
299
  declare type CoverageReporter = 'clover' | 'cobertura' | 'html-spa' | 'html' | 'json-summary' | 'json' | 'lcov' | 'lcovonly' | 'none' | 'teamcity' | 'text-lcov' | 'text-summary' | 'text';
255
300
  interface C8Options {
256
301
  /**
@@ -300,6 +345,7 @@ interface C8Options {
300
345
  all?: boolean;
301
346
  }
302
347
  interface ResolvedC8Options extends Required<C8Options> {
348
+ tempDirectory: string;
303
349
  }
304
350
 
305
351
  interface JSDOMOptions {
@@ -382,49 +428,6 @@ interface JSDOMOptions {
382
428
  resources?: 'usable' | any;
383
429
  }
384
430
 
385
- declare type Awaitable<T> = T | PromiseLike<T>;
386
- declare type Arrayable<T> = T | Array<T>;
387
- declare type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never;
388
- interface UserConsoleLog {
389
- content: string;
390
- type: 'stdout' | 'stderr';
391
- taskId?: string;
392
- time: number;
393
- }
394
- interface Position {
395
- line: number;
396
- column: number;
397
- }
398
- interface ParsedStack {
399
- method: string;
400
- file: string;
401
- line: number;
402
- column: number;
403
- sourcePos?: Position;
404
- }
405
- interface ErrorWithDiff extends Error {
406
- name: string;
407
- nameStr?: string;
408
- stack?: string;
409
- stackStr?: string;
410
- stacks?: ParsedStack[];
411
- showDiff?: boolean;
412
- actual?: any;
413
- expected?: any;
414
- operator?: string;
415
- }
416
- interface StartOfSourceMap {
417
- file?: string;
418
- sourceRoot?: string;
419
- }
420
- interface RawSourceMap extends StartOfSourceMap {
421
- version: string;
422
- sources: string[];
423
- names: string[];
424
- sourcesContent?: string[];
425
- mappings: string;
426
- }
427
-
428
431
  declare type RunMode = 'run' | 'skip' | 'only' | 'todo';
429
432
  declare type TaskState = RunMode | 'pass' | 'fail';
430
433
  interface TaskBase {
@@ -698,10 +701,16 @@ interface InlineConfig {
698
701
  */
699
702
  api?: boolean | number | ApiConfig;
700
703
  /**
701
- * Open Vitest UI
704
+ * Enable Vitest UI
702
705
  * @internal WIP
703
706
  */
704
707
  ui?: boolean;
708
+ /**
709
+ * Open UI automatically.
710
+ *
711
+ * @default true
712
+ */
713
+ open?: boolean;
705
714
  /**
706
715
  * Base url for the UI
707
716
  *
@@ -756,6 +765,10 @@ interface UserConfig extends InlineConfig {
756
765
  * Pass with no tests
757
766
  */
758
767
  passWithNoTests?: boolean;
768
+ /**
769
+ * Allow tests and suites that are marked as only
770
+ */
771
+ allowOnly?: boolean;
759
772
  /**
760
773
  * Run tests that cover a list of source files
761
774
  */
@@ -806,7 +819,6 @@ declare class Vitest {
806
819
  server: ViteDevServer;
807
820
  state: StateManager;
808
821
  snapshot: SnapshotManager;
809
- coverage: Profiler.TakePreciseCoverageReturnType[];
810
822
  reporters: Reporter[];
811
823
  console: Console;
812
824
  pool: WorkerPool | undefined;
@@ -819,7 +831,6 @@ declare class Vitest {
819
831
  vitenode: ViteNodeServer;
820
832
  invalidates: Set<string>;
821
833
  changedTests: Set<string>;
822
- visitedFilesMap: Map<string, RawSourceMap>;
823
834
  runningPromise?: Promise<void>;
824
835
  closingPromise?: Promise<void>;
825
836
  isFirstRun: boolean;
@@ -855,6 +866,6 @@ declare class Vitest {
855
866
 
856
867
  declare function createVitest(options: UserConfig, viteOverrides?: UserConfig$1): Promise<Vitest>;
857
868
 
858
- declare function VitestPlugin(options?: UserConfig, viteOverrides?: UserConfig$1, ctx?: Vitest): Promise<Plugin$1[]>;
869
+ declare function VitestPlugin(options?: UserConfig, ctx?: Vitest): Promise<Plugin$1[]>;
859
870
 
860
871
  export { Vitest, VitestPlugin, createVitest };
package/dist/node.js CHANGED
@@ -1,4 +1,4 @@
1
- export { V as VitestPlugin, c as createVitest } from './create-0d7ef684.js';
1
+ export { V as VitestPlugin, c as createVitest } from './create-a1bc541a.js';
2
2
  import './index-1964368a.js';
3
3
  import 'path';
4
4
  import 'vite';
@@ -10,18 +10,20 @@ import 'os';
10
10
  import 'util';
11
11
  import 'stream';
12
12
  import 'events';
13
- import './index-a2ff0e29.js';
13
+ import './index-fcd4a465.js';
14
14
  import 'tty';
15
15
  import 'local-pkg';
16
- import './index-1085cee5.js';
16
+ import './client-f15310bf.js';
17
17
  import 'module';
18
18
  import 'assert';
19
+ import 'vm';
20
+ import 'v8';
19
21
  import 'perf_hooks';
20
- import './diff-f479c2ad.js';
21
- import './source-map-f7a4da05.js';
22
- import './index-825cb54c.js';
23
- import './_commonjsHelpers-bdec4bbd.js';
22
+ import './diff-192d8dc6.js';
23
+ import './source-map-a9204b39.js';
24
+ import './index-648e7ab2.js';
25
+ import './_commonjsHelpers-c9e3b764.js';
24
26
  import 'worker_threads';
25
27
  import 'tinypool';
26
28
  import './magic-string.es-94000aea.js';
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==