Skip to content

Commit

Permalink
major: drop support for Node < 18
Browse files Browse the repository at this point in the history
feat: bump deps
  • Loading branch information
felixmosh committed Jun 4, 2024
1 parent ce5edbc commit 418c58d
Show file tree
Hide file tree
Showing 14 changed files with 3,041 additions and 2,841 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node: ['14.x', '16.x']
node: ['18.x', '20.x']
os: [ubuntu-latest]

steps:
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ describe('my-cool-controller tests', () => {
});

it('should add new user', async () => {
const insertId = faker.datatype.number();
const insertId = faker.number.int();
tracker.on.insert('users').response([insertId]);

const newUser = { name: 'foo bar', email: '[email protected]' };
Expand Down Expand Up @@ -179,7 +179,7 @@ db = knex({
dialect: 'pg', // can be any Knex valid dialect name.
});

const givenData = [{ id: faker.datatype.number() }];
const givenData = [{ id: faker.number.int() }];
tracker.on.select('table_name').response(givenData);

const data = await db('table_name').distinctOn('age');
Expand Down
15 changes: 10 additions & 5 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
const packageJson = require('./package.json');

/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
displayName: packageJson.name,
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/tests/**/?(*.)+(spec|test).[jt]s?(x)'],
globals: {
'ts-jest': {
isolatedModules: true
}
}
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{
tsconfig: { moduleResolution: 'classic' },
isolatedModules: true,
},
],
},
};
39 changes: 20 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,31 +36,32 @@
"lodash.clonedeep": "^4.5.0"
},
"devDependencies": {
"@faker-js/faker": "^6.3.1",
"@types/jest": "^27.5.0",
"@types/lodash.clonedeep": "^4.5.7",
"@types/node": "^17.0.31",
"@typescript-eslint/eslint-plugin": "^5.23.0",
"@typescript-eslint/parser": "^5.23.0",
"@faker-js/faker": "^8.4.1",
"@tsconfig/node18": "^18.2.4",
"@types/jest": "^29.5.12",
"@types/lodash.clonedeep": "^4.5.9",
"@types/node": "^18.19.34",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"auto-changelog": "^2.4.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0",
"husky": "^7.0.4",
"jest": "^28.1.0",
"knex": "^2.0.0",
"lint-staged": "^11.2.3",
"prettier": "^2.6.2",
"release-it": "^15.0.0",
"ts-jest": "^28.0.2",
"ts-node-dev": "^1.1.8",
"typescript": "^4.6.4"
"eslint": "^8.57.0",
"eslint-config-prettier": "^8.10.0",
"eslint-plugin-prettier": "^5.1.3",
"husky": "^9.0.11",
"jest": "^29.7.0",
"knex": "^3.1.0",
"lint-staged": "^15.2.5",
"prettier": "^3.3.0",
"release-it": "^16.3.0",
"ts-jest": "^29.1.4",
"ts-node-dev": "^2.0.0",
"typescript": "^5.4.5"
},
"peerDependencies": {
"knex": ">=2.0.0"
},
"engines": {
"node": ">=12"
"node": ">=16"
},
"release-it": {
"git": {
Expand Down
22 changes: 11 additions & 11 deletions tests/any.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ describe('mock any statement', () => {
});

it('should allow to mock any query using string matcher', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on.any('table_name').response(affectedRows);

const data = await db('table_name').delete().where('id', 1);
Expand All @@ -27,7 +27,7 @@ describe('mock any statement', () => {
});

it('should allow to mock any query using regex matcher', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on.any(/table_name/).response(affectedRows);

const data = await db('table_name').where('id', 1);
Expand All @@ -36,7 +36,7 @@ describe('mock any statement', () => {
});

it('should allow to mock any query using custom matcher', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on
.any((rawQuery) => rawQuery.method === 'update' && rawQuery.sql.includes('table_name'))
.response(affectedRows);
Expand All @@ -47,7 +47,7 @@ describe('mock any statement', () => {
});

it('should return a deep clone of the data', async () => {
const expectedData = [{ id: faker.datatype.number() }];
const expectedData = [{ id: faker.number.int() }];

tracker.on
.any((rawQuery) => rawQuery.method === 'select' && rawQuery.sql.includes('table_name'))
Expand All @@ -59,7 +59,7 @@ describe('mock any statement', () => {
});

it('should allow to query the same handler multiple times', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();

tracker.on.any('table_name').response(affectedRows);

Expand All @@ -71,7 +71,7 @@ describe('mock any statement', () => {
});

it('should allow to reset handlers', async () => {
let affectedRows = faker.datatype.number();
let affectedRows = faker.number.int();

tracker.on.any('table_name').response(affectedRows);

Expand All @@ -81,7 +81,7 @@ describe('mock any statement', () => {

tracker.resetHandlers();

affectedRows = faker.datatype.number();
affectedRows = faker.number.int();

tracker.on.any('table_name').response(affectedRows);

Expand All @@ -90,7 +90,7 @@ describe('mock any statement', () => {
});

it('should allow to mock any query once', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on
.any((rawQuery) => rawQuery.method === 'delete' && rawQuery.sql.includes('table_name'))
.responseOnce(affectedRows);
Expand All @@ -105,13 +105,13 @@ describe('mock any statement', () => {
});

it('should collect call history by method', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();

tracker.on
.any((rawQuery) => rawQuery.method === 'delete' && rawQuery.sql.includes('table_name'))
.response(affectedRows);

const deleteIds = [faker.datatype.number({ min: 1 }), faker.datatype.number({ min: 1 })];
const deleteIds = [faker.number.int({ min: 1 }), faker.number.int({ min: 1 })];
await db('table_name').delete().where('id', deleteIds[0]);
await db('table_name').delete().where('id', deleteIds[1]);

Expand Down Expand Up @@ -165,7 +165,7 @@ describe('mock any statement', () => {
it('should support `raw` delete statement', async () => {
tracker.on.any('table_name').response([]);

await db.raw('Delete from ?? where id=?', ['table_name', faker.datatype.number({ min: 1 })]);
await db.raw('Delete from ?? where id=?', ['table_name', faker.number.int({ min: 1 })]);

expect(tracker.history.any).toHaveLength(1);
});
Expand Down
6 changes: 3 additions & 3 deletions tests/common.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ describe('common behaviour', () => {
queryMethods.forEach((method) => {
describe(method, () => {
it(`should errorMessage error when given invalid matcher`, async () => {
const givenData = [{ id: faker.datatype.number() }];
const givenData = [{ id: faker.number.int() }];
expect(() => tracker.on[method](null as any).response(givenData)).toThrowError(
'Given invalid query matcher'
);
Expand All @@ -68,7 +68,7 @@ describe('common behaviour', () => {
});

it(`should reject when no match found`, async () => {
const givenData = [{ id: faker.datatype.number() }];
const givenData = [{ id: faker.number.int() }];
tracker.on[method]('wrong_name').response(givenData);

await expect(db('table_name')).rejects.toMatchObject({
Expand All @@ -93,7 +93,7 @@ describe('common behaviour', () => {
});

it('should support jest fake timers', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on.select('table_name').response(affectedRows);

const data = await db('table_name').where('id', 1);
Expand Down
22 changes: 11 additions & 11 deletions tests/delete.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ describe('mock Delete statement', () => {
});

it('should allow to mock delete query using string matcher', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on.delete('table_name').response(affectedRows);

const data = await db('table_name').delete().where('id', 1);
Expand All @@ -27,7 +27,7 @@ describe('mock Delete statement', () => {
});

it('should allow to mock delete query using regex matcher', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on.delete(/table_name/).response(affectedRows);

const data = await db('table_name').delete().where('id', 1);
Expand All @@ -36,7 +36,7 @@ describe('mock Delete statement', () => {
});

it('should allow to mock delete query using custom matcher', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on
.delete((rawQuery) => rawQuery.method === 'delete' && rawQuery.sql.includes('table_name'))
.response(affectedRows);
Expand All @@ -47,7 +47,7 @@ describe('mock Delete statement', () => {
});

it('should return a deep clone of the data', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();

tracker.on
.delete((rawQuery) => rawQuery.method === 'delete' && rawQuery.sql.includes('table_name'))
Expand All @@ -59,7 +59,7 @@ describe('mock Delete statement', () => {
});

it('should allow to query the same handler multiple times', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();

tracker.on.delete('table_name').response(affectedRows);

Expand All @@ -71,7 +71,7 @@ describe('mock Delete statement', () => {
});

it('should allow to reset handlers', async () => {
let affectedRows = faker.datatype.number();
let affectedRows = faker.number.int();

tracker.on.delete('table_name').response(affectedRows);

Expand All @@ -81,7 +81,7 @@ describe('mock Delete statement', () => {

tracker.resetHandlers();

affectedRows = faker.datatype.number();
affectedRows = faker.number.int();

tracker.on.delete('table_name').response(affectedRows);

Expand All @@ -90,7 +90,7 @@ describe('mock Delete statement', () => {
});

it('should allow to mock delete query once', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();
tracker.on
.delete((rawQuery) => rawQuery.method === 'delete' && rawQuery.sql.includes('table_name'))
.responseOnce(affectedRows);
Expand All @@ -105,13 +105,13 @@ describe('mock Delete statement', () => {
});

it('should collect call history by method', async () => {
const affectedRows = faker.datatype.number();
const affectedRows = faker.number.int();

tracker.on
.delete((rawQuery) => rawQuery.method === 'delete' && rawQuery.sql.includes('table_name'))
.response(affectedRows);

const deleteIds = [faker.datatype.number({ min: 1 }), faker.datatype.number({ min: 1 })];
const deleteIds = [faker.number.int({ min: 1 }), faker.number.int({ min: 1 })];
await db('table_name').delete().where('id', deleteIds[0]);
await db('table_name').delete().where('id', deleteIds[1]);

Expand Down Expand Up @@ -161,7 +161,7 @@ describe('mock Delete statement', () => {
it('should support `raw` delete statement', async () => {
tracker.on.delete('table_name').response([]);

await db.raw('Delete from ?? where id=?', ['table_name', faker.datatype.number({ min: 1 })]);
await db.raw('Delete from ?? where id=?', ['table_name', faker.number.int({ min: 1 })]);

expect(tracker.history.delete).toHaveLength(1);
});
Expand Down
8 changes: 4 additions & 4 deletions tests/dialects.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('specific dialect', () => {
});

it('should allow to mock select query distinctOn', async () => {
const givenData = [{ id: faker.datatype.number() }];
const givenData = [{ id: faker.number.int() }];
tracker.on.select('table_name').response(givenData);

const data = await db('table_name').distinctOn('age');
Expand All @@ -30,7 +30,7 @@ describe('specific dialect', () => {
});

it('should allow to mock select query noWait', async () => {
const givenData = [{ id: faker.datatype.number() }];
const givenData = [{ id: faker.number.int() }];
tracker.on.select('table_name').response(givenData);

const data = await db('table_name').select('*').forUpdate().noWait();
Expand Down Expand Up @@ -60,10 +60,10 @@ describe('specific dialect', () => {

await db.transaction(async (trx) => {
await db('table_name')
.insert({ name: faker.name.firstName() })
.insert({ name: faker.person.firstName() })
.returning('*')
.transacting(trx);
await db('table_name').delete().where({ name: faker.name.firstName() }).transacting(trx);
await db('table_name').delete().where({ name: faker.person.firstName() }).transacting(trx);
});

expect(tracker.history.insert).toHaveLength(1);
Expand Down
Loading

0 comments on commit 418c58d

Please sign in to comment.