diff --git a/integration-tests/api/__tests__/admin/region.js b/integration-tests/api/__tests__/admin/region.js new file mode 100644 index 0000000000..bdb7e5b080 --- /dev/null +++ b/integration-tests/api/__tests__/admin/region.js @@ -0,0 +1,73 @@ +const path = require("path") +const { Region, FulfillmentProvider } = require("@medusajs/medusa") + +const setupServer = require("../../../helpers/setup-server") +const { useApi } = require("../../../helpers/use-api") +const { initDb, useDb } = require("../../../helpers/use-db") +const adminSeeder = require("../../helpers/admin-seeder") + +jest.setTimeout(30000) + +describe("/admin/discounts", () => { + let medusaProcess + let dbConnection + + beforeAll(async () => { + const cwd = path.resolve(path.join(__dirname, "..", "..")) + dbConnection = await initDb({ cwd }) + medusaProcess = await setupServer({ cwd, verbose: true }) + }) + + afterAll(async () => { + const db = useDb() + await db.shutdown() + medusaProcess.kill() + }) + + describe("DELETE /admin/regions/:id", () => { + beforeEach(async () => { + const manager = dbConnection.manager + await adminSeeder(dbConnection) + await manager.insert(Region, { + id: "test-region", + name: "Test Region", + currency_code: "usd", + tax_rate: 0, + }) + }) + + afterEach(async () => { + const db = useDb() + await db.teardown() + }) + + it("successfully deletes a region with a fulfillment provider", async () => { + const api = useApi() + + // add fulfillment provider to the region + await api.post( + "/admin/regions/test-region", + { + fulfillment_providers: ["test-ful"], + }, + { + headers: { + Authorization: "Bearer test_token", + }, + } + ) + + const response = await api + .delete(`/admin/regions/test-region`, { + headers: { + Authorization: "Bearer test_token", + }, + }) + .catch((err) => { + console.log(err) + }) + + expect(response.status).toEqual(200) + }) + }) +}) diff --git a/integration-tests/api/package.json b/integration-tests/api/package.json index bde4983347..4f98824455 100644 --- a/integration-tests/api/package.json +++ b/integration-tests/api/package.json @@ -8,15 +8,15 @@ "build": "babel src -d dist --extensions \".ts,.js\"" }, "dependencies": { - "@medusajs/medusa": "1.1.41-dev-1634316075104", - "medusa-interfaces": "1.1.23-dev-1634316075104", + "@medusajs/medusa": "1.1.46-dev-1635944259436", + "medusa-interfaces": "1.1.27-dev-1635944259436", "typeorm": "^0.2.31" }, "devDependencies": { "@babel/cli": "^7.12.10", "@babel/core": "^7.12.10", "@babel/node": "^7.12.10", - "babel-preset-medusa-package": "1.1.15-dev-1634316075104", + "babel-preset-medusa-package": "1.1.17-dev-1635944259436", "jest": "^26.6.3" } } diff --git a/integration-tests/api/yarn.lock b/integration-tests/api/yarn.lock index 5bfce87d1e..25e92836dd 100644 --- a/integration-tests/api/yarn.lock +++ b/integration-tests/api/yarn.lock @@ -1223,10 +1223,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@medusajs/medusa-cli@1.1.18-dev-1634316075104": - version "1.1.18-dev-1634316075104" - resolved "http://localhost:4873/@medusajs%2fmedusa-cli/-/medusa-cli-1.1.18-dev-1634316075104.tgz#65b891999ae2c3125d6ea8d83e0f28907fed9dfc" - integrity sha512-wfcfCdJn28C69j2r6EBc6YYVd/wwJ605SI9PI7tgE+0PJRo1NxUcV3+5py9YSAj1Yvjj70vy4mPvpjJfdy3P6g== +"@medusajs/medusa-cli@1.1.22-dev-1635944259436": + version "1.1.22-dev-1635944259436" + resolved "http://localhost:4873/@medusajs%2fmedusa-cli/-/medusa-cli-1.1.22-dev-1635944259436.tgz#37c2a629d839646f3437e021e30c87e6ea288d62" + integrity sha512-YqP0XY1hXCprPOsnRZ8BRGs/maevYNrCHPzjSAu8PwI8A9p2/W19L1CQbSSUDI9JqJz5iyDZeioEuhNDrCnshQ== dependencies: "@babel/polyfill" "^7.8.7" "@babel/runtime" "^7.9.6" @@ -1244,8 +1244,8 @@ is-valid-path "^0.1.1" joi-objectid "^3.0.1" meant "^1.0.1" - medusa-core-utils "1.1.22-dev-1634316075104" - medusa-telemetry "0.0.5-dev-1634316075104" + medusa-core-utils "1.1.26-dev-1635944259436" + medusa-telemetry "0.0.9-dev-1635944259436" netrc-parser "^3.1.6" open "^8.0.6" ora "^5.4.1" @@ -1259,13 +1259,13 @@ winston "^3.3.3" yargs "^15.3.1" -"@medusajs/medusa@1.1.41-dev-1634316075104": - version "1.1.41-dev-1634316075104" - resolved "http://localhost:4873/@medusajs%2fmedusa/-/medusa-1.1.41-dev-1634316075104.tgz#8b81aa4a1234fdaf486822545cd8a91d079f7e4b" - integrity sha512-Xw5//89QYYmo+jIBntwDJmbUya/JZl8dbMYVBDcLnORlWRGpWuzLdILfIMW0XWkF8aVI829O9goqT+hsQ/cZ5w== +"@medusajs/medusa@1.1.46-dev-1635944259436": + version "1.1.46-dev-1635944259436" + resolved "http://localhost:4873/@medusajs%2fmedusa/-/medusa-1.1.46-dev-1635944259436.tgz#0acd01bb6f4a643cab75ec8a38422885ada5a24f" + integrity sha512-hM8/UP0TJxz1Qhoc90GmaGdGi/DBGvdh8E3EINl3e6CncwPcS4hC4Jy8d/Dl1wgwIht+q3/v3JNdc4q6ALxGsw== dependencies: "@hapi/joi" "^16.1.8" - "@medusajs/medusa-cli" "1.1.18-dev-1634316075104" + "@medusajs/medusa-cli" "1.1.22-dev-1635944259436" "@types/lodash" "^4.14.168" awilix "^4.2.3" body-parser "^1.19.0" @@ -1287,8 +1287,8 @@ joi "^17.3.0" joi-objectid "^3.0.1" jsonwebtoken "^8.5.1" - medusa-core-utils "1.1.22-dev-1634316075104" - medusa-test-utils "1.1.25-dev-1634316075104" + medusa-core-utils "1.1.26-dev-1635944259436" + medusa-test-utils "1.1.29-dev-1635944259436" morgan "^1.9.1" multer "^1.4.2" passport "^0.4.0" @@ -1911,10 +1911,10 @@ babel-preset-jest@^26.6.2: babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" -babel-preset-medusa-package@1.1.15-dev-1634316075104: - version "1.1.15-dev-1634316075104" - resolved "http://localhost:4873/babel-preset-medusa-package/-/babel-preset-medusa-package-1.1.15-dev-1634316075104.tgz#1180bb50676ff349fc59b0b9c8bcad97caef85dc" - integrity sha512-BUWSunUpuAbdZyV093TdwEc5DZvrbp3aqQlrouX9HxgqrFeXYFWNcZqZNADS9NHq1LJqNyHuE1Vz+IQnu9lj0g== +babel-preset-medusa-package@1.1.17-dev-1635944259436: + version "1.1.17-dev-1635944259436" + resolved "http://localhost:4873/babel-preset-medusa-package/-/babel-preset-medusa-package-1.1.17-dev-1635944259436.tgz#0baa03fb4ae54ed3da805d13bd159271d84e06a6" + integrity sha512-zF8VNwk+ZVZJS1jpO0Zp93attDAOdsGEQmMLjko/fkEU3CgdPXW6GAB589m6Heq7EU9ZbCeP/IP7LnrBHuPBKw== dependencies: "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-decorators" "^7.12.1" @@ -5089,25 +5089,25 @@ media-typer@0.3.0: resolved "http://localhost:4873/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -medusa-core-utils@1.1.22-dev-1634316075104: - version "1.1.22-dev-1634316075104" - resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-1.1.22-dev-1634316075104.tgz#9cffe185fbce1899ffaae0e08e8f0007fca8571e" - integrity sha512-WRkquPYzodg5PSWTxnIDRMcn+N8LiLpq1Yx8DWIsmV/tsULe+Sz1CMJcUFRGF5bLcyN/Za9yIz6GCHmGOB64aw== +medusa-core-utils@1.1.26-dev-1635944259436: + version "1.1.26-dev-1635944259436" + resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-1.1.26-dev-1635944259436.tgz#34a2bc6715a64d2aeaa09461f776651ab9a80349" + integrity sha512-xflDfs2HCNo7pPxyka9IWgOO7LAyFBoWYKWTZNBoAjiSDKBCpnsOPVMxK+1R5gBSf3PNzUl7Uca3VVCKGFuIPQ== dependencies: joi "^17.3.0" joi-objectid "^3.0.1" -medusa-interfaces@1.1.23-dev-1634316075104: - version "1.1.23-dev-1634316075104" - resolved "http://localhost:4873/medusa-interfaces/-/medusa-interfaces-1.1.23-dev-1634316075104.tgz#7d787951fd4d66b75b3b235cd833b1840506804b" - integrity sha512-+6u2Q2lgALX2RYBjLOTFmCKB2HgarQbRr+u0uG81gyurF2/TxzwGb/hJLZIeS/Elk2HYuIpstswrAet7/9Rupw== +medusa-interfaces@1.1.27-dev-1635944259436: + version "1.1.27-dev-1635944259436" + resolved "http://localhost:4873/medusa-interfaces/-/medusa-interfaces-1.1.27-dev-1635944259436.tgz#f0354011a82bc33fd2c7d62a0e86a160ae62d9cb" + integrity sha512-YrwcjmFYFax5l+V4qNnx2VS2JN4ujPzke/TxKTUE7XLGVLcdBAjh0KbHBT490ozjVAa7ttLaPiM0ZHCIje+2vw== dependencies: - medusa-core-utils "1.1.22-dev-1634316075104" + medusa-core-utils "1.1.26-dev-1635944259436" -medusa-telemetry@0.0.5-dev-1634316075104: - version "0.0.5-dev-1634316075104" - resolved "http://localhost:4873/medusa-telemetry/-/medusa-telemetry-0.0.5-dev-1634316075104.tgz#c1bd94ab2e2c3d4dc4bc3d664d96a9091a924fd9" - integrity sha512-Lh/izeAaHt/ClugwMi+Gwsa2OAzVuuNW5WhFAiHQhrR0BA4bYee4xLKWqWw+JGfjMfodOCwF+Zl3I5qINXuaFg== +medusa-telemetry@0.0.9-dev-1635944259436: + version "0.0.9-dev-1635944259436" + resolved "http://localhost:4873/medusa-telemetry/-/medusa-telemetry-0.0.9-dev-1635944259436.tgz#5b988da3745e39c9765aab3222bcfbe8e61c555b" + integrity sha512-S1csCqHJ5rhuY/IW+g2P6lnFGW4tmlf51/QovmwyiLuDg3x9AUoEdPow6ceWpoFylfo2rXmhzX4ByfHXd2qs9Q== dependencies: axios "^0.21.1" axios-retry "^3.1.9" @@ -5119,13 +5119,13 @@ medusa-telemetry@0.0.5-dev-1634316075104: remove-trailing-slash "^0.1.1" uuid "^8.3.2" -medusa-test-utils@1.1.25-dev-1634316075104: - version "1.1.25-dev-1634316075104" - resolved "http://localhost:4873/medusa-test-utils/-/medusa-test-utils-1.1.25-dev-1634316075104.tgz#5958d02013a73f8ddcaf4140d9c81e900172f826" - integrity sha512-2P+Mq+kICR4oa2AhT36HhP8VR15tEli6XBT/yWweVBkRzrjoGptqHg5BtDtUt/s+PYy7STlKG/tin/VH6J3zLg== +medusa-test-utils@1.1.29-dev-1635944259436: + version "1.1.29-dev-1635944259436" + resolved "http://localhost:4873/medusa-test-utils/-/medusa-test-utils-1.1.29-dev-1635944259436.tgz#d341b2a1fd30a199905ad8907a1a62479f4c1f2d" + integrity sha512-1q/FAYkidnbUqTUkx8oMZVUQ3UIMVo8ul9zuU5NfE3MnldT/Yj4O8B2/UhyuHu5V7k97TC62buKbAbqQlw6Q4w== dependencies: "@babel/plugin-transform-classes" "^7.9.5" - medusa-core-utils "1.1.22-dev-1634316075104" + medusa-core-utils "1.1.26-dev-1635944259436" randomatic "^3.1.1" merge-descriptors@1.0.1: diff --git a/packages/medusa/src/models/region.ts b/packages/medusa/src/models/region.ts index b834ef7f66..07e7d95ab1 100644 --- a/packages/medusa/src/models/region.ts +++ b/packages/medusa/src/models/region.ts @@ -47,7 +47,7 @@ export class Region { ) countries: Country[] - @ManyToMany(() => PaymentProvider, { eager: true, cascade: true }) + @ManyToMany(() => PaymentProvider, { eager: true, cascade: ['insert', 'update'] }) @JoinTable({ name: "region_payment_providers", joinColumn: { @@ -61,7 +61,7 @@ export class Region { }) payment_providers: PaymentProvider[] - @ManyToMany(() => FulfillmentProvider, { eager: true, cascade: true }) + @ManyToMany(() => FulfillmentProvider, { eager: true, cascade: ['insert', 'update'] }) @JoinTable({ name: "region_fulfillment_providers", joinColumn: {