Skip to content

Commit f76a3ec

Browse files
authored
Migrate from Jest to Vitest (#48)
* Migrate from Jest to Vitest * Remove Jest shield
1 parent f98c515 commit f76a3ec

19 files changed

+731
-3242
lines changed

.babelrc

Lines changed: 0 additions & 3 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,4 @@ jobs:
110110
HUSKY: 0
111111

112112
- name: Run tests
113-
run: yarn jest
113+
run: yarn unit

.yarnrc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
logFilters:
2+
- code: YN0076
3+
level: discard
4+
15
nodeLinker: node-modules
26

37
plugins:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![npm](https://img.shields.io/npm/v/@wojtekmaj/async-array-utils.svg)](https://www.npmjs.com/package/@wojtekmaj/async-array-utils) ![downloads](https://img.shields.io/npm/dt/@wojtekmaj/async-array-utils.svg) [![CI](https://github.com/wojtekmaj/async-array-utils/workflows/CI/badge.svg)](https://github.com/wojtekmaj/async-array-utils/actions) [![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest)
1+
[![npm](https://img.shields.io/npm/v/@wojtekmaj/async-array-utils.svg)](https://www.npmjs.com/package/@wojtekmaj/async-array-utils) ![downloads](https://img.shields.io/npm/dt/@wojtekmaj/async-array-utils.svg) [![CI](https://github.com/wojtekmaj/async-array-utils/workflows/CI/badge.svg)](https://github.com/wojtekmaj/async-array-utils/actions)
22

33
# Async-Array-Utils
44

jest.config.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

package.json

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
"build-esm": "tsc --project tsconfig.build.json --outDir dist/esm --module esnext",
1313
"build-cjs": "tsc --project tsconfig.build.json --outDir dist/cjs --module commonjs",
1414
"clean": "rimraf dist",
15-
"jest": "jest",
1615
"lint": "eslint .",
1716
"postinstall": "husky install",
1817
"prepack": "yarn clean && yarn build",
1918
"prettier": "prettier --check . --cache",
20-
"test": "yarn lint && yarn tsc && yarn prettier && yarn jest",
21-
"tsc": "tsc --noEmit"
19+
"test": "yarn lint && yarn tsc && yarn prettier && yarn unit",
20+
"tsc": "tsc --noEmit",
21+
"unit": "vitest run"
2222
},
2323
"keywords": [
2424
"array",
@@ -32,20 +32,16 @@
3232
},
3333
"license": "MIT",
3434
"devDependencies": {
35-
"@babel/core": "^7.15.0",
36-
"@babel/preset-env": "^7.15.0",
37-
"@babel/preset-typescript": "^7.18.6",
38-
"@types/jest": "^29.0.0",
3935
"@typescript-eslint/eslint-plugin": "^5.41.0",
4036
"@typescript-eslint/parser": "^5.44.0",
4137
"eslint": "^8.26.0",
4238
"eslint-config-wojtekmaj": "^0.7.1",
4339
"husky": "^8.0.0",
44-
"jest": "^29.0.0",
4540
"prettier": "^2.7.0",
4641
"pretty-quick": "^3.1.0",
4742
"rimraf": "^3.0.0",
48-
"typescript": "^4.9.4"
43+
"typescript": "^4.9.4",
44+
"vitest": "^0.29.2"
4945
},
5046
"publishConfig": {
5147
"access": "public"

src/every.spec.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it, vi } from 'vitest';
12
import asyncEvery from './every';
23

34
import {
@@ -47,7 +48,7 @@ describe('asyncEvery()', () => {
4748
});
4849

4950
it.skip('assertions below are valid for synchronous .every()', () => {
50-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZero);
51+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZero);
5152

5253
inputArr.every(mapper);
5354

@@ -60,7 +61,7 @@ describe('asyncEvery()', () => {
6061
});
6162

6263
it('iterates over values properly', async () => {
63-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
64+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
6465

6566
await asyncEvery(inputArr, mapper);
6667

@@ -73,45 +74,45 @@ describe('asyncEvery()', () => {
7374
});
7475

7576
it.skip('assertions below are valid for synchronous .every()', () => {
76-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZero);
77+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZero);
7778

7879
const result = inputArr.every(mapper);
7980

8081
expect(result).toEqual(true);
8182
});
8283

8384
it('returns truthy result properly', async () => {
84-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
85+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
8586

8687
const result = await asyncEvery(inputArr, mapper);
8788

8889
expect(result).toEqual(true);
8990
});
9091

9192
it.skip('assertions below are valid for synchronous .every()', () => {
92-
const mapper = jest.fn().mockImplementation(largerThanOneHundred);
93+
const mapper = vi.fn().mockImplementation(largerThanOneHundred);
9394

9495
const result = inputArr.every(mapper);
9596

9697
expect(result).toEqual(false);
9798
});
9899

99100
it('returns falsy result properly', async () => {
100-
const mapper = jest.fn().mockImplementation(largerThanOneHundredInRandomTime);
101+
const mapper = vi.fn().mockImplementation(largerThanOneHundredInRandomTime);
101102

102103
const result = await asyncEvery(inputArr, mapper);
103104

104105
expect(result).toEqual(false);
105106
});
106107

107108
it.skip('assertions below are valid for synchronous .every()', () => {
108-
const mapper = jest.fn().mockImplementation(throws);
109+
const mapper = vi.fn().mockImplementation(throws);
109110

110111
expect(() => inputArr.every(mapper)).toThrow('Some error');
111112
});
112113

113114
it('throws if function passed throws', async () => {
114-
const mapper = jest.fn().mockImplementation(throws);
115+
const mapper = vi.fn().mockImplementation(throws);
115116

116117
await expect(() => asyncEvery(inputArr, mapper)).rejects.toThrow('Some error');
117118
});

src/every_strict.spec.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it, vi } from 'vitest';
12
import asyncEveryStrict from './every_strict';
23

34
import {
@@ -56,7 +57,7 @@ describe('asyncEveryStrict()', () => {
5657
});
5758

5859
it.skip('assertions below are valid for synchronous .every()', () => {
59-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZero);
60+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZero);
6061

6162
inputArr.every(mapper);
6263

@@ -69,7 +70,7 @@ describe('asyncEveryStrict()', () => {
6970
});
7071

7172
it('iterates over values properly', async () => {
72-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
73+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
7374

7475
await asyncEveryStrict(inputArr, mapper);
7576

@@ -83,7 +84,7 @@ describe('asyncEveryStrict()', () => {
8384

8485
it.skip('assertions below are valid for synchronous .every()', () => {
8586
const [arr, pushDuplicate] = makePushDuplicate();
86-
const mapper = jest.fn().mockImplementation((el) => {
87+
const mapper = vi.fn().mockImplementation((el) => {
8788
pushDuplicate(el);
8889
return largerOrEqualThanZero(el);
8990
});
@@ -96,7 +97,7 @@ describe('asyncEveryStrict()', () => {
9697

9798
it('iterates through an array properly with side effects', async () => {
9899
const [arr, pushDuplicate] = makePushDuplicateInRandomTime();
99-
const mapper = jest.fn().mockImplementation(async (el) => {
100+
const mapper = vi.fn().mockImplementation(async (el) => {
100101
await pushDuplicate(el);
101102
return largerOrEqualThanZero(el);
102103
});
@@ -108,45 +109,45 @@ describe('asyncEveryStrict()', () => {
108109
});
109110

110111
it.skip('assertions below are valid for synchronous .every()', () => {
111-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZero);
112+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZero);
112113

113114
const result = inputArr.every(mapper);
114115

115116
expect(result).toEqual(true);
116117
});
117118

118119
it('returns truthy result properly', async () => {
119-
const mapper = jest.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
120+
const mapper = vi.fn().mockImplementation(largerOrEqualThanZeroInRandomTime);
120121

121122
const result = await asyncEveryStrict(inputArr, mapper);
122123

123124
expect(result).toEqual(true);
124125
});
125126

126127
it.skip('assertions below are valid for synchronous .every()', () => {
127-
const mapper = jest.fn().mockImplementation(largerThanOneHundred);
128+
const mapper = vi.fn().mockImplementation(largerThanOneHundred);
128129

129130
const result = inputArr.every(mapper);
130131

131132
expect(result).toEqual(false);
132133
});
133134

134135
it('returns falsy result properly', async () => {
135-
const mapper = jest.fn().mockImplementation(largerThanOneHundredInRandomTime);
136+
const mapper = vi.fn().mockImplementation(largerThanOneHundredInRandomTime);
136137

137138
const result = await asyncEveryStrict(inputArr, mapper);
138139

139140
expect(result).toEqual(false);
140141
});
141142

142143
it.skip('assertions below are valid for synchronous .every()', () => {
143-
const mapper = jest.fn().mockImplementation(throws);
144+
const mapper = vi.fn().mockImplementation(throws);
144145

145146
expect(() => inputArr.every(mapper)).toThrow('Some error');
146147
});
147148

148149
it('throws if function passed throws', async () => {
149-
const mapper = jest.fn().mockImplementation(throws);
150+
const mapper = vi.fn().mockImplementation(throws);
150151

151152
await expect(() => asyncEveryStrict(inputArr, mapper)).rejects.toThrow('Some error');
152153
});

src/filter.spec.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it, vi } from 'vitest';
12
import asyncFilter from './filter';
23

34
import {
@@ -35,7 +36,7 @@ describe('asyncFilter()', () => {
3536
});
3637

3738
it.skip('assertions below are valid for synchronous .filter()', () => {
38-
const filter = jest.fn().mockImplementation(largerThanTwo);
39+
const filter = vi.fn().mockImplementation(largerThanTwo);
3940

4041
inputArr.filter(filter);
4142

@@ -48,7 +49,7 @@ describe('asyncFilter()', () => {
4849
});
4950

5051
it('iterates over values properly', async () => {
51-
const filter = jest.fn().mockImplementation(largerThanTwoInRandomTime);
52+
const filter = vi.fn().mockImplementation(largerThanTwoInRandomTime);
5253

5354
await asyncFilter(inputArr, filter);
5455

@@ -61,29 +62,29 @@ describe('asyncFilter()', () => {
6162
});
6263

6364
it.skip('assertions below are valid for synchronous .filter()', () => {
64-
const filter = jest.fn().mockImplementation(largerThanTwo);
65+
const filter = vi.fn().mockImplementation(largerThanTwo);
6566

6667
const result = inputArr.filter(filter);
6768

6869
expect(result).toEqual([3, 4, 5, 6, 7, 8, 9, 10]);
6970
});
7071

7172
it('filters array properly', async () => {
72-
const filter = jest.fn().mockImplementation(largerThanTwoInRandomTime);
73+
const filter = vi.fn().mockImplementation(largerThanTwoInRandomTime);
7374

7475
const result = await asyncFilter(inputArr, filter);
7576

7677
expect(result).toEqual([3, 4, 5, 6, 7, 8, 9, 10]);
7778
});
7879

7980
it.skip('assertions below are valid for synchronous .filter()', () => {
80-
const mapper = jest.fn().mockImplementation(throws);
81+
const mapper = vi.fn().mockImplementation(throws);
8182

8283
expect(() => inputArr.filter(mapper)).toThrow('Some error');
8384
});
8485

8586
it('throws if function passed throws', async () => {
86-
const mapper = jest.fn().mockImplementation(throws);
87+
const mapper = vi.fn().mockImplementation(throws);
8788

8889
await expect(() => asyncFilter(inputArr, mapper)).rejects.toThrow('Some error');
8990
});

src/filter_strict.spec.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it, vi } from 'vitest';
12
import asyncFilterStrict from './filter_strict';
23

34
import {
@@ -44,7 +45,7 @@ describe('asyncFilterStrict()', () => {
4445
});
4546

4647
it.skip('assertions below are valid for synchronous .filter()', () => {
47-
const filter = jest.fn().mockImplementation(largerThanTwo);
48+
const filter = vi.fn().mockImplementation(largerThanTwo);
4849

4950
inputArr.filter(filter);
5051

@@ -57,7 +58,7 @@ describe('asyncFilterStrict()', () => {
5758
});
5859

5960
it('iterates over values properly', async () => {
60-
const filter = jest.fn().mockImplementation(largerThanTwoInRandomTime);
61+
const filter = vi.fn().mockImplementation(largerThanTwoInRandomTime);
6162

6263
await asyncFilterStrict(inputArr, filter);
6364

@@ -71,7 +72,7 @@ describe('asyncFilterStrict()', () => {
7172

7273
it.skip('assertions below are valid for synchronous .filter()', () => {
7374
const [arr, pushDuplicate] = makePushDuplicate();
74-
const mapper = jest.fn().mockImplementation(pushDuplicate);
75+
const mapper = vi.fn().mockImplementation(pushDuplicate);
7576

7677
inputArr.filter(mapper);
7778

@@ -81,7 +82,7 @@ describe('asyncFilterStrict()', () => {
8182

8283
it('iterates through an array properly with side effects', async () => {
8384
const [arr, pushDuplicate] = makePushDuplicateInRandomTime();
84-
const mapper = jest.fn().mockImplementation(pushDuplicate);
85+
const mapper = vi.fn().mockImplementation(pushDuplicate);
8586

8687
await asyncFilterStrict(inputArr, mapper);
8788

@@ -90,29 +91,29 @@ describe('asyncFilterStrict()', () => {
9091
});
9192

9293
it.skip('assertions below are valid for synchronous .filter()', () => {
93-
const filter = jest.fn().mockImplementation(largerThanTwo);
94+
const filter = vi.fn().mockImplementation(largerThanTwo);
9495

9596
const result = inputArr.filter(filter);
9697

9798
expect(result).toEqual([3, 4, 5, 6, 7, 8, 9, 10]);
9899
});
99100

100101
it('filters array properly', async () => {
101-
const filter = jest.fn().mockImplementation(largerThanTwoInRandomTime);
102+
const filter = vi.fn().mockImplementation(largerThanTwoInRandomTime);
102103

103104
const result = await asyncFilterStrict(inputArr, filter);
104105

105106
expect(result).toEqual([3, 4, 5, 6, 7, 8, 9, 10]);
106107
});
107108

108109
it.skip('assertions below are valid for synchronous .filter()', () => {
109-
const mapper = jest.fn().mockImplementation(throws);
110+
const mapper = vi.fn().mockImplementation(throws);
110111

111112
expect(() => inputArr.filter(mapper)).toThrow('Some error');
112113
});
113114

114115
it('throws if function passed throws', async () => {
115-
const mapper = jest.fn().mockImplementation(throws);
116+
const mapper = vi.fn().mockImplementation(throws);
116117

117118
await expect(() => asyncFilterStrict(inputArr, mapper)).rejects.toThrow('Some error');
118119
});

0 commit comments

Comments
 (0)