Skip to content

Commit 310545f

Browse files
committed
ci: fixes
Signed-off-by: riccardoperra <riccardo.perra@icloud.com>
1 parent 3483d24 commit 310545f

File tree

25 files changed

+896
-878
lines changed

25 files changed

+896
-878
lines changed

.github/workflows/main.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ jobs:
102102
typecheck-packages:
103103
if: ${{ needs.install.outputs.libs-change == 'true' }}
104104
name: Type-checking
105-
needs: [install, build-packages]
105+
needs: [install, build-packages, build-api]
106106
runs-on: ubuntu-latest
107107
steps:
108108
- name: Checkout PR
@@ -118,6 +118,12 @@ jobs:
118118
path: packages
119119
key: packages-dist-${{ github.run_id }}-${{ github.run_number }}
120120

121+
- name: Restore api bundle
122+
uses: actions/cache@v5
123+
with:
124+
path: packages
125+
key: rest-api-bundle-${{ github.run_id }}-${{ github.run_number }}
126+
121127
- name: Typecheck packages
122128
run: |
123129
pnpm --filter='./packages/**' --recursive typecheck:ci

apps/api/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
"build:ts": "tsdown",
3535
"build:types": "tsc -p tsconfig.schema.json",
3636
"prisma:migrate:dev": "prisma migrate dev",
37-
"prisma:migrate:test": "dotenv -e .env.testing -- prisma migrate dev",
37+
"prisma:migrate:test": "dotenv -e .env.test -- prisma migrate dev",
3838
"prisma:migrate:deploy": "prisma migrate deploy",
39-
"prisma:migrate:deploy-test": "dotenv -e .env.testing -- prisma migrate deploy",
40-
"prisma:migrate:reset-test": "dotenv -e .env.testing -- prisma migrate reset --force",
39+
"prisma:migrate:deploy-test": "dotenv -e .env.test -- prisma migrate deploy",
40+
"prisma:migrate:reset-test": "dotenv -e .env.test -- prisma migrate reset --force",
4141
"prisma:generate": "prisma generate dev && pnpm --filter=@codeimage/prisma-models build",
4242
"docker:dev": "docker compose -f docker-compose.dev.yml up"
4343
},
@@ -70,7 +70,7 @@
7070
"@prisma/adapter-pg": "7.5.0",
7171
"@types/node": "catalog:next",
7272
"@types/sinon": "^21.0.0",
73-
"@vitest/ui": "^4.1.1",
73+
"@vitest/ui": "^4.1.2",
7474
"concurrently": "^9.2.1",
7575
"fastify-tsconfig": "^3.0.0",
7676
"oxfmt": "catalog:next",
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import * as sinon from 'sinon';
2-
import {assert, test} from 'vitest';
1+
import {expect, test, vi} from 'vitest';
32
import {HandlerBuilder} from '../../../src/common/domainFunctions/builder.js';
43

54
test('create handler', async () => {
6-
const fn = sinon.fake();
5+
const fn = vi.fn();
76

87
const handler = HandlerBuilder.withDependencies<string>()
98
.withName('name')
@@ -14,5 +13,5 @@ test('create handler', async () => {
1413
// oxlint-disable-next-line typescript/no-explicit-any
1514
handler('test-deps', {} as any)(1);
1615

17-
assert(fn.calledWith(1, 'test-deps'));
16+
expect(fn).toHaveBeenCalledWith(1, 'test-deps');
1817
});

apps/api/test/modules/preset/handlers/create.test.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type {DomainHandlerMap, ResolvedDomainHandlerMap} from '@api/domain';
22
import type {Preset} from '@codeimage/prisma-models';
3-
import * as sinon from 'sinon';
4-
import {assert, beforeEach, expect, test} from 'vitest';
3+
import {assert, beforeEach, expect, test, vi} from 'vitest';
54
import {create} from '../../../../src/modules/preset/handlers/create.js';
65
import type {PresetHandlerDependencies} from '../../../../src/modules/preset/handlers/index.js';
76
import type {PresetCreateDto} from '../../../../src/modules/preset/schema/preset-create-dto.schema.js';
@@ -11,7 +10,7 @@ import {dependencies} from './dependencies.js';
1110

1211
const handlersStub = {} as ResolvedDomainHandlerMap<DomainHandlerMap>;
1312

14-
beforeEach(() => sinon.restore());
13+
beforeEach(() => vi.restoreAllMocks());
1514

1615
test('when findById and found result', async () => {
1716
const id = 'preset-1';
@@ -41,16 +40,16 @@ test('when findById and found result', async () => {
4140
data: testPresetUtils.buildPresetData(),
4241
};
4342

44-
sinon.stub(dependencies.config, 'PRESETS_LIMIT').value(10);
45-
sinon.stub(dependencies.repository, 'countByOwnerId').resolves(0);
43+
vi.spyOn(dependencies.config, 'PRESETS_LIMIT', 'get').mockReturnValue(10);
44+
vi.spyOn(dependencies.repository, 'countByOwnerId').mockResolvedValue(0);
4645

47-
const createStub = sinon
48-
.stub(dependencies.repository, 'create')
49-
.resolves(savedPreset);
46+
const createStub = vi
47+
.spyOn(dependencies.repository, 'create')
48+
.mockResolvedValue(savedPreset);
5049

51-
const fromEntityToDtoStub = sinon
52-
.stub(dependencies.mapper, 'fromEntityToDto')
53-
.resolves(expected);
50+
const fromEntityToDtoStub = vi
51+
.spyOn(dependencies.mapper, 'fromEntityToDto')
52+
.mockResolvedValue(expected);
5453

5554
const result = await create(
5655
dependencies as unknown as PresetHandlerDependencies,
@@ -59,10 +58,14 @@ test('when findById and found result', async () => {
5958
},
6059
)(ownerId, request);
6160

62-
assert.ok(
63-
createStub.calledOnceWithExactly({...request, version: BigInt(1), ownerId}),
64-
);
65-
assert.ok(fromEntityToDtoStub.calledOnceWithExactly(savedPreset));
61+
expect(createStub).toHaveBeenCalledTimes(1);
62+
expect(createStub).toHaveBeenCalledWith({
63+
...request,
64+
version: BigInt(1),
65+
ownerId,
66+
});
67+
expect(fromEntityToDtoStub).toHaveBeenCalledTimes(1);
68+
expect(fromEntityToDtoStub).toHaveBeenCalledWith(savedPreset);
6669

6770
assert.equal(result, expected);
6871
});
@@ -86,24 +89,21 @@ test('throw error when exceed limit', async () => {
8689
ownerId,
8790
};
8891

89-
sinon.stub(dependencies.config, 'PRESETS_LIMIT').value(1);
90-
sinon.stub(dependencies.repository, 'countByOwnerId').resolves(10);
92+
vi.spyOn(dependencies.config, 'PRESETS_LIMIT', 'get').mockReturnValue(1);
93+
vi.spyOn(dependencies.repository, 'countByOwnerId').mockResolvedValue(10);
9194

92-
const createStub = sinon
93-
.stub(dependencies.repository, 'create')
94-
.resolves(savedPreset);
95+
const createStub = vi
96+
.spyOn(dependencies.repository, 'create')
97+
.mockResolvedValue(savedPreset);
9598

96-
const fromEntityToDtoStub = sinon.stub(
97-
dependencies.mapper,
98-
'fromEntityToDto',
99-
);
99+
const fromEntityToDtoStub = vi.spyOn(dependencies.mapper, 'fromEntityToDto');
100100

101101
await expect(
102102
create(dependencies as unknown as PresetHandlerDependencies, {
103103
handlers: handlersStub,
104104
})(ownerId, request),
105105
).rejects.toThrow();
106106

107-
assert.ok(createStub.notCalled);
108-
assert.ok(fromEntityToDtoStub.notCalled);
107+
expect(createStub).not.toHaveBeenCalled();
108+
expect(fromEntityToDtoStub).not.toHaveBeenCalled();
109109
});

apps/api/test/modules/preset/handlers/findById.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type {DomainHandlerMap, ResolvedDomainHandlerMap} from '@api/domain';
22
import type {Preset} from '@codeimage/prisma-models';
3-
import * as sinon from 'sinon';
43
import {assert, beforeEach, expect, test, vi} from 'vitest';
54
import {findById} from '../../../../src/modules/preset/handlers/findById.js';
65
import type {PresetHandlerDependencies} from '../../../../src/modules/preset/handlers/index.js';
@@ -10,7 +9,7 @@ import {dependencies} from './dependencies.js';
109

1110
const handlersStub = {} as ResolvedDomainHandlerMap<DomainHandlerMap>;
1211

13-
beforeEach(() => sinon.restore());
12+
beforeEach(() => vi.restoreAllMocks());
1413

1514
test('when findById and found result', async () => {
1615
const id = 'preset-1';
@@ -52,14 +51,15 @@ test('when findById and return 0 result', async () => {
5251
const ownerId = 'owner-1';
5352
const id = 'preset-1';
5453

55-
sinon
56-
.stub(dependencies.repository, 'findByIdAndOwnerId')
57-
.withArgs(id, ownerId)
58-
.returns(Promise.resolve(null));
54+
const findByIdStub = vi
55+
.spyOn(dependencies.repository, 'findByIdAndOwnerId')
56+
.mockResolvedValue(null);
5957

6058
await expect(
6159
findById(dependencies as unknown as PresetHandlerDependencies, {
6260
handlers: handlersStub,
63-
})('ownerId', id),
61+
})(ownerId, id),
6462
).rejects.toThrow();
63+
64+
expect(findByIdStub).toHaveBeenCalledWith(id, ownerId);
6565
});
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type {DomainHandlerMap, ResolvedDomainHandlerMap} from '@api/domain';
2-
import * as sinon from 'sinon';
3-
import {assert, beforeEach, test} from 'vitest';
2+
import {assert, beforeEach, expect, test, vi} from 'vitest';
43
import {findAll} from '../../../../src/modules/preset/handlers/findAll.js';
54
import type {PresetHandlerDependencies} from '../../../../src/modules/preset/handlers/index.js';
65
import type {PresetDto} from '../../../../src/modules/preset/schema/preset-dto.schema.js';
@@ -9,16 +8,16 @@ import {dependencies} from './dependencies.js';
98

109
const handlersStub = {} as ResolvedDomainHandlerMap<DomainHandlerMap>;
1110

12-
beforeEach(() => sinon.restore());
11+
beforeEach(() => vi.restoreAllMocks());
1312

1413
test('when findAll', async () => {
1514
const ownerId = 'owner-1';
1615
const preset1 = PresetTestDataUtils.buildPreset('id1', 'preset', ownerId);
1716
const preset2 = PresetTestDataUtils.buildPreset('id2', 'preset2', ownerId);
1817

19-
const findAllByOwnerIdStub = sinon
20-
.stub(dependencies.repository, 'findAllByOwnerId')
21-
.resolves([preset1, preset2]);
18+
const findAllByOwnerIdStub = vi
19+
.spyOn(dependencies.repository, 'findAllByOwnerId')
20+
.mockResolvedValue([preset1, preset2]);
2221

2322
const expected1 = {
2423
id: preset1.id,
@@ -29,9 +28,9 @@ test('when findAll', async () => {
2928
data: {},
3029
} as PresetDto;
3130

32-
const fromEntityToDtoStub = sinon
33-
.stub(dependencies.mapper, 'fromEntityToDto')
34-
.resolves(expected1);
31+
const fromEntityToDtoStub = vi
32+
.spyOn(dependencies.mapper, 'fromEntityToDto')
33+
.mockResolvedValue(expected1);
3534

3635
const result = await findAll(
3736
dependencies as unknown as PresetHandlerDependencies,
@@ -40,7 +39,8 @@ test('when findAll', async () => {
4039
},
4140
)(ownerId);
4241

43-
assert.ok(findAllByOwnerIdStub.calledOnceWithExactly(ownerId));
44-
assert.ok(fromEntityToDtoStub.calledTwice);
42+
expect(findAllByOwnerIdStub).toHaveBeenCalledTimes(1);
43+
expect(findAllByOwnerIdStub).toHaveBeenCalledWith(ownerId);
44+
expect(fromEntityToDtoStub).toHaveBeenCalledTimes(2);
4545
assert.equal(result.length, 2);
4646
});

0 commit comments

Comments
 (0)