From 13fe2f6776b22c401d131f184fc3600ef4008383 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Tue, 21 Jan 2025 10:34:57 +0100 Subject: [PATCH] fix(framework): migration scripts regexp (#11072) FIXES FRMW-2879 **What** The exclusion regexp was broken and instead use the ignore options of the glob sync function to properly ignore definition files --- .changeset/nervous-carrots-draw.md | 6 ++++ packages/core/framework/package.json | 2 +- .../project/migration-scripts/test.d.ts | 0 .../project/migration-scripts/test.ts | 3 ++ .../__tests__/run-migration-scripts.spec.ts | 31 +++++++++++++++++-- .../core/framework/src/migrations/migrator.ts | 12 +++---- .../medusa/src/commands/plugin/db/generate.ts | 2 +- 7 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 .changeset/nervous-carrots-draw.md create mode 100644 packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.d.ts create mode 100644 packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.ts diff --git a/.changeset/nervous-carrots-draw.md b/.changeset/nervous-carrots-draw.md new file mode 100644 index 0000000000..62e73b62e2 --- /dev/null +++ b/.changeset/nervous-carrots-draw.md @@ -0,0 +1,6 @@ +--- +"@medusajs/medusa": patch +"@medusajs/framework": patch +--- + +fix(framework): migration scripts regexp diff --git a/packages/core/framework/package.json b/packages/core/framework/package.json index 4f9647df70..b5600a3d99 100644 --- a/packages/core/framework/package.json +++ b/packages/core/framework/package.json @@ -51,7 +51,7 @@ "watch": "tsc --watch ", "watch:test": "tsc --watch", "build": "rimraf dist && tsc --build", - "test": "jest --runInBand --bail --passWithNoTests --forceExit" + "test": "jest --runInBand --bail --forceExit -- src/**/__tests__/**/*.ts" }, "devDependencies": { "@medusajs/cli": "^2.3.1", diff --git a/packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.d.ts b/packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.d.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.ts b/packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.ts new file mode 100644 index 0000000000..84c9cf3f27 --- /dev/null +++ b/packages/core/framework/src/migrations/__fixtures__/project/migration-scripts/test.ts @@ -0,0 +1,3 @@ +export default function test() { + console.log("test") +} diff --git a/packages/core/framework/src/migrations/__tests__/run-migration-scripts.spec.ts b/packages/core/framework/src/migrations/__tests__/run-migration-scripts.spec.ts index 9417da351f..3c0e547b8a 100644 --- a/packages/core/framework/src/migrations/__tests__/run-migration-scripts.spec.ts +++ b/packages/core/framework/src/migrations/__tests__/run-migration-scripts.spec.ts @@ -1,8 +1,8 @@ -import { MedusaContainer } from "@medusajs/types" -import { MigrationScriptsMigrator } from "../run-migration-scripts" import { jest } from "@jest/globals" -import path from "path" +import { MedusaContainer } from "@medusajs/types" import { ContainerRegistrationKeys, Modules } from "@medusajs/utils" +import path from "path" +import { MigrationScriptsMigrator } from "../run-migration-scripts" const mockPgConnection = { raw: jest.fn(), @@ -171,4 +171,29 @@ describe("MigrationScriptsMigrator", () => { ) }) }) + + describe("loadMigrationFiles", () => { + it("should load migration files correctly", async () => { + const result = await migrator.loadMigrationFiles([ + path.join( + __dirname, + "..", + "__fixtures__", + "project", + "migration-scripts" + ), + ]) + expect(result).toHaveLength(1) + expect(result[0]).toEqual( + path.join( + __dirname, + "..", + "__fixtures__", + "project", + "migration-scripts", + "test.ts" + ) + ) + }) + }) }) diff --git a/packages/core/framework/src/migrations/migrator.ts b/packages/core/framework/src/migrations/migrator.ts index df1ab51434..60bbeb8a79 100644 --- a/packages/core/framework/src/migrations/migrator.ts +++ b/packages/core/framework/src/migrations/migrator.ts @@ -1,9 +1,9 @@ -import { join } from "path" -import { glob } from "glob" -import { logger } from "../logger" import { MedusaContainer } from "@medusajs/types" -import { ContainerRegistrationKeys } from "../utils" import { Knex } from "@mikro-orm/knex" +import { glob } from "glob" +import { join } from "path" +import { logger } from "../logger" +import { ContainerRegistrationKeys } from "../utils" export abstract class Migrator { protected abstract migration_table_name: string @@ -135,9 +135,9 @@ export abstract class Migrator { } try { - const scriptFiles = glob.sync("*.{js,(!d.)ts}", { + const scriptFiles = glob.sync("*.{js,ts}", { cwd: basePath, - ignore: ["**/index.{js,ts}"], + ignore: ["**/index.{js,ts}", "**/*.d.ts"], }) if (!scriptFiles?.length) { diff --git a/packages/medusa/src/commands/plugin/db/generate.ts b/packages/medusa/src/commands/plugin/db/generate.ts index caa5e6114a..518beccfdb 100644 --- a/packages/medusa/src/commands/plugin/db/generate.ts +++ b/packages/medusa/src/commands/plugin/db/generate.ts @@ -62,7 +62,7 @@ async function getEntitiesForModule(path: string) { const entities = [] as any[] const entityPaths = glob.sync(join(path, "models", "*.ts"), { - ignore: ["**/index.{js,ts}"], + ignore: ["**/index.{js,ts}", "**/*.d.ts"], }) for (const entityPath of entityPaths) {