From 6a17aa5ac8e22914de88ebeaae2adaa1c6469b95 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Tue, 5 Sep 2023 10:46:03 +0200 Subject: [PATCH] Start test migrations --- packages/core/strapi/.eslintrc.js | 8 ++++++ packages/core/strapi/package.json | 1 + packages/core/strapi/src/index.ts | 2 +- ...r-hash.test.js => admin-user-hash.test.ts} | 12 ++++----- .../{index.test.js => index.test.ts} | 25 ++++++++++--------- .../{is-truthy.js => is-truthy.test.ts} | 4 +-- .../src/types/core/attributes/biginteger.ts | 2 +- packages/core/strapi/src/types/utils/guard.ts | 2 +- yarn.lock | 14 +++++------ 9 files changed, 38 insertions(+), 32 deletions(-) rename packages/core/strapi/src/services/metrics/__tests__/{admin-user-hash.test.js => admin-user-hash.test.ts} (70%) rename packages/core/strapi/src/services/metrics/__tests__/{index.test.js => index.test.ts} (86%) rename packages/core/strapi/src/services/metrics/__tests__/{is-truthy.js => is-truthy.test.ts} (93%) diff --git a/packages/core/strapi/.eslintrc.js b/packages/core/strapi/.eslintrc.js index a165f57061..adda4c4f0d 100644 --- a/packages/core/strapi/.eslintrc.js +++ b/packages/core/strapi/.eslintrc.js @@ -1,4 +1,12 @@ module.exports = { root: true, extends: ['custom/back/typescript'], + overrides: [ + { + files: ['**/*.test.ts'], + rules: { + 'import/no-relative-packages': 'warn', + }, + }, + ], }; diff --git a/packages/core/strapi/package.json b/packages/core/strapi/package.json index 091e1a0c0a..a3b991618d 100644 --- a/packages/core/strapi/package.json +++ b/packages/core/strapi/package.json @@ -143,6 +143,7 @@ "@types/bcryptjs": "2.4.3", "@types/configstore": "5.0.1", "@types/delegates": "1.0.0", + "@types/jest": "29.5.2", "@types/koa": "*", "@types/koa-compress": "4.0.3", "@types/koa-session": "6.4.1", diff --git a/packages/core/strapi/src/index.ts b/packages/core/strapi/src/index.ts index 14d6a7b3d7..580b6fb49b 100644 --- a/packages/core/strapi/src/index.ts +++ b/packages/core/strapi/src/index.ts @@ -1,4 +1,4 @@ -import './global'; +import './admin'; import strapiFactory from './Strapi'; export = strapiFactory; diff --git a/packages/core/strapi/src/services/metrics/__tests__/admin-user-hash.test.js b/packages/core/strapi/src/services/metrics/__tests__/admin-user-hash.test.ts similarity index 70% rename from packages/core/strapi/src/services/metrics/__tests__/admin-user-hash.test.js rename to packages/core/strapi/src/services/metrics/__tests__/admin-user-hash.test.ts index 46f7d24c92..72fc49eead 100644 --- a/packages/core/strapi/src/services/metrics/__tests__/admin-user-hash.test.js +++ b/packages/core/strapi/src/services/metrics/__tests__/admin-user-hash.test.ts @@ -1,8 +1,6 @@ -'use strict'; - -const crypto = require('crypto'); -const { generateAdminUserHash } = require('../admin-user-hash'); -const createContext = require('../../../../../../../test/helpers/create-context'); +import crypto from 'crypto'; +import { generateAdminUserHash } from '../admin-user-hash'; +import createContext from '../../../../../../../test/helpers/create-context'; describe('user email hash', () => { test('should create a hash from admin user email', () => { @@ -22,7 +20,7 @@ describe('user email hash', () => { const hash = crypto.createHash('sha256').update('testemail@strapi.io').digest('hex'); - const userId = generateAdminUserHash(strapi); + const userId = generateAdminUserHash(strapi as any); expect(userId).toBe(hash); }); @@ -35,7 +33,7 @@ describe('user email hash', () => { }, }; - const userId = generateAdminUserHash(strapi); + const userId = generateAdminUserHash(strapi as any); expect(userId).toBe(''); }); }); diff --git a/packages/core/strapi/src/services/metrics/__tests__/index.test.js b/packages/core/strapi/src/services/metrics/__tests__/index.test.ts similarity index 86% rename from packages/core/strapi/src/services/metrics/__tests__/index.test.js rename to packages/core/strapi/src/services/metrics/__tests__/index.test.ts index 9a4fe878a0..5da33f4bf8 100644 --- a/packages/core/strapi/src/services/metrics/__tests__/index.test.js +++ b/packages/core/strapi/src/services/metrics/__tests__/index.test.ts @@ -1,10 +1,8 @@ -'use strict'; +import { get } from 'lodash/fp'; +import metrics from '../index'; jest.mock('node-fetch', () => jest.fn(() => Promise.resolve())); -const { get } = require('lodash/fp'); -const metrics = require('../index'); - const fetch = jest.fn(() => Promise.resolve()); describe('metrics', () => { @@ -37,7 +35,7 @@ describe('metrics', () => { get: jest.fn(() => ({})), }, fetch, - }); + } as any); metricsInstance.register(); @@ -72,7 +70,7 @@ describe('metrics', () => { get: jest.fn(() => ({})), }, fetch, - }); + } as any); metricsInstance.register(); @@ -105,21 +103,24 @@ describe('metrics', () => { get: jest.fn(() => ({})), }, fetch, - }); + } as any); send('someEvent'); expect(fetch).toHaveBeenCalled(); - expect(fetch.mock.calls[0][0]).toBe('https://analytics.strapi.io/api/v2/track'); - expect(fetch.mock.calls[0][1].method).toBe('POST'); - expect(JSON.parse(fetch.mock.calls[0][1].body)).toMatchObject({ + + const callParameters = fetch.mock.calls[0] as any[]; + expect(callParameters[0]).toBe('https://analytics.strapi.io/api/v2/track'); + + expect(callParameters[1].method).toBe('POST'); + expect(JSON.parse(callParameters[1].body)).toMatchObject({ event: 'someEvent', groupProperties: { projectType: 'Community', projectId: 'test', }, }); - expect(fetch.mock.calls[0][1].headers).toMatchObject({ + expect(callParameters[1].headers).toMatchObject({ 'Content-Type': 'application/json', 'X-Strapi-Event': 'someEvent', }); @@ -152,7 +153,7 @@ describe('metrics', () => { get: jest.fn(() => ({})), }, fetch, - }); + } as any); send('someEvent'); diff --git a/packages/core/strapi/src/services/metrics/__tests__/is-truthy.js b/packages/core/strapi/src/services/metrics/__tests__/is-truthy.test.ts similarity index 93% rename from packages/core/strapi/src/services/metrics/__tests__/is-truthy.js rename to packages/core/strapi/src/services/metrics/__tests__/is-truthy.test.ts index 936d7e8c2f..d40db2a9b7 100644 --- a/packages/core/strapi/src/services/metrics/__tests__/is-truthy.js +++ b/packages/core/strapi/src/services/metrics/__tests__/is-truthy.test.ts @@ -1,6 +1,4 @@ -'use strict'; - -const isTruthyEnvVar = require('../is-truthy'); +import isTruthyEnvVar from '../is-truthy'; describe('isTruthyEnvVar', () => { test('Handles boolean strings', () => { diff --git a/packages/core/strapi/src/types/core/attributes/biginteger.ts b/packages/core/strapi/src/types/core/attributes/biginteger.ts index 3b7e6807fa..a39c34e1a3 100644 --- a/packages/core/strapi/src/types/core/attributes/biginteger.ts +++ b/packages/core/strapi/src/types/core/attributes/biginteger.ts @@ -8,7 +8,7 @@ export type BigInteger = Attribute.OfType<'biginteger'> & Attribute.PrivateOption & Attribute.RequiredOption & Attribute.WritableOption & - Attribute.VisibleOption + Attribute.VisibleOption; export type BigIntegerValue = string; diff --git a/packages/core/strapi/src/types/utils/guard.ts b/packages/core/strapi/src/types/utils/guard.ts index 4b181a6145..824d38ecbf 100644 --- a/packages/core/strapi/src/types/utils/guard.ts +++ b/packages/core/strapi/src/types/utils/guard.ts @@ -1,4 +1,4 @@ -import type { Utils } from '@strapi/strapi'; +import type { Utils } from '..'; /** * Assign a default value `TDefault` to `TValue` if `TValue` is of type `never` diff --git a/yarn.lock b/yarn.lock index 3daaa2395e..64aff2f721 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2452,12 +2452,12 @@ __metadata: languageName: node linkType: hard -"@casl/ability@npm:5.4.4": - version: 5.4.4 - resolution: "@casl/ability@npm:5.4.4" +"@casl/ability@npm:6.5.0": + version: 6.5.0 + resolution: "@casl/ability@npm:6.5.0" dependencies: "@ucast/mongo2js": ^1.3.0 - checksum: d7afcf09fdd03b1908bdf009246b76327f19cf26b16d235d331231f5ad40fde51d42567fe669143c383627177f547585d6d99486eb4d4b98171cde67b5ee4cd2 + checksum: 3e5e415ea1c8e5a0865825caea01ab4c146a78888f5efb00a6241957f3141eeb2ccd603acc6a4fc10c401c75b04543bcfc20c22b65d95da32f6b2ea081cfcf2d languageName: node linkType: hard @@ -6950,7 +6950,7 @@ __metadata: version: 0.0.0-use.local resolution: "@strapi/admin@workspace:packages/core/admin" dependencies: - "@casl/ability": 5.4.4 + "@casl/ability": 6.5.0 "@pmmmwh/react-refresh-webpack-plugin": 0.5.10 "@strapi/data-transfer": 4.12.7 "@strapi/design-system": 1.9.0 @@ -7055,7 +7055,6 @@ __metadata: resolution: "@strapi/data-transfer@workspace:packages/core/data-transfer" dependencies: "@strapi/logger": 4.12.7 - "@strapi/strapi": 4.12.7 "@types/fs-extra": 9.0.13 "@types/jest": 29.5.2 "@types/koa": "*" @@ -7271,7 +7270,7 @@ __metadata: version: 0.0.0-use.local resolution: "@strapi/permissions@workspace:packages/core/permissions" dependencies: - "@casl/ability": 5.4.4 + "@casl/ability": 6.5.0 "@strapi/utils": 4.12.7 eslint-config-custom: 4.12.7 lodash: 4.17.21 @@ -7723,6 +7722,7 @@ __metadata: "@types/bcryptjs": 2.4.3 "@types/configstore": 5.0.1 "@types/delegates": 1.0.0 + "@types/jest": 29.5.2 "@types/koa": "*" "@types/koa-compress": 4.0.3 "@types/koa-session": 6.4.1