fix: delete region causes cascade error (#672)

Co-authored-by: olivermrbl <oliver@mrbltech.com>
This commit is contained in:
Zakaria El Asri
2021-11-03 15:19:46 +01:00
committed by GitHub
parent 692cccf53a
commit 0a65eca3de
4 changed files with 113 additions and 40 deletions

View File

@@ -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)
})
})
})

View File

@@ -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"
}
}

View File

@@ -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:

View File

@@ -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: {