Skip to content

Commit

Permalink
Merge branch 'develop' into feat/unit-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
riqwan authored Mar 25, 2024
2 parents 4dc19ff + 9073d7a commit 930d135
Show file tree
Hide file tree
Showing 80 changed files with 1,049 additions and 2,269 deletions.
8 changes: 8 additions & 0 deletions .changeset/old-knives-guess.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@medusajs/core-flows": patch
"@medusajs/medusa": patch
"@medusajs/types": patch
"@medusajs/utils": patch
---

feat(core-flows,medusa,types,utils): rename psma to prices
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import {
} from "../../../../factories"

import { IPricingModuleService } from "@medusajs/types"
import { medusaIntegrationTestRunner } from "medusa-test-utils"
import adminSeeder from "../../../../helpers/admin-seeder"
import { createDefaultRuleTypes } from "../../../helpers/create-default-rule-types"
import { createVariantPriceSet } from "../../../helpers/create-variant-price-set"
import { medusaIntegrationTestRunner } from "medusa-test-utils"

jest.setTimeout(50000)

Expand Down Expand Up @@ -100,11 +100,10 @@ medusaIntegrationTestRunner({
})

it("should delete prices in batch based on product ids", async () => {
let priceSetMoneyAmounts =
await pricingModuleService.listPriceSetMoneyAmounts({
price_set_id: [priceSet.id],
})
expect(priceSetMoneyAmounts.length).toEqual(2)
let prices = await pricingModuleService.listPrices({
price_set_id: [priceSet.id],
})
expect(prices.length).toEqual(2)

const deleteRes = await api.delete(
`/admin/price-lists/${priceListId}/products/prices/batch`,
Expand All @@ -117,39 +116,36 @@ medusaIntegrationTestRunner({
)
expect(deleteRes.status).toEqual(200)

priceSetMoneyAmounts =
await pricingModuleService.listPriceSetMoneyAmounts({
price_set_id: [priceSet.id],
})
prices = await pricingModuleService.listPrices({
price_set_id: [priceSet.id],
})

expect(priceSetMoneyAmounts.length).toEqual(1)
expect(priceSetMoneyAmounts).toEqual([
expect(prices.length).toEqual(1)
expect(prices).toEqual([
expect.objectContaining({
price_list: null,
}),
])
})

it("should delete prices based on single product id", async () => {
let priceSetMoneyAmounts =
await pricingModuleService.listPriceSetMoneyAmounts({
price_set_id: [priceSet.id],
})
expect(priceSetMoneyAmounts.length).toEqual(2)
let prices = await pricingModuleService.listPrices({
price_set_id: [priceSet.id],
})
expect(prices.length).toEqual(2)

const deleteRes = await api.delete(
`/admin/price-lists/${priceListId}/products/${product.id}/prices`,
adminHeaders
)
expect(deleteRes.status).toEqual(200)

priceSetMoneyAmounts =
await pricingModuleService.listPriceSetMoneyAmounts({
price_set_id: [priceSet.id],
})
prices = await pricingModuleService.listPrices({
price_set_id: [priceSet.id],
})

expect(priceSetMoneyAmounts.length).toEqual(1)
expect(priceSetMoneyAmounts).toEqual([
expect(prices.length).toEqual(1)
expect(prices).toEqual([
expect.objectContaining({
price_list: null,
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import {
} from "../../../../factories"

import { IPricingModuleService } from "@medusajs/types"
import { medusaIntegrationTestRunner } from "medusa-test-utils"
import adminSeeder from "../../../../helpers/admin-seeder"
import { createDefaultRuleTypes } from "../../../helpers/create-default-rule-types"
import { createVariantPriceSet } from "../../../helpers/create-variant-price-set"
import { medusaIntegrationTestRunner } from "medusa-test-utils"

jest.setTimeout(50000)

Expand Down Expand Up @@ -94,21 +94,21 @@ medusaIntegrationTestRunner({
const result = await api.post(`admin/price-lists`, data, adminHeaders)
const priceListId = result.data.price_list.id

let psmas = await pricingModuleService.listPriceSetMoneyAmounts({
let prices = await pricingModuleService.listPrices({
price_list_id: [priceListId],
})
expect(psmas.length).toEqual(1)
expect(prices.length).toEqual(1)

const deleteRes = await api.delete(
`/admin/price-lists/${priceListId}/variants/${variant.id}/prices`,
adminHeaders
)
expect(deleteRes.status).toEqual(200)

psmas = await pricingModuleService.listPriceSetMoneyAmounts({
prices = await pricingModuleService.listPrices({
price_list_id: [priceListId],
})
expect(psmas.length).toEqual(0)
expect(prices.length).toEqual(0)
})
})
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import {
} from "../../../../factories"

import { IPricingModuleService } from "@medusajs/types"
import { medusaIntegrationTestRunner } from "medusa-test-utils"
import adminSeeder from "../../../../helpers/admin-seeder"
import { createDefaultRuleTypes } from "../../../helpers/create-default-rule-types"
import { createVariantPriceSet } from "../../../helpers/create-variant-price-set"
import { medusaIntegrationTestRunner } from "medusa-test-utils"

jest.setTimeout(50000)

Expand Down Expand Up @@ -98,16 +98,16 @@ medusaIntegrationTestRunner({
const res = await api.post(`admin/price-lists`, data, adminHeaders)

const priceListId = res.data.price_list.id
let psmas = await pricingModuleService.listPriceSetMoneyAmounts(
let prices = await pricingModuleService.listPrices(
{
price_list_id: [priceListId],
},
{ relations: ["money_amount"] }
{}
)

expect(psmas.length).toEqual(2)
expect(prices.length).toEqual(2)

const deletePrice = psmas[0].money_amount
const deletePrice = prices[0]
const deleteRes = await api.delete(
`/admin/price-lists/${priceListId}/prices/batch`,
{
Expand All @@ -119,10 +119,10 @@ medusaIntegrationTestRunner({
)
expect(deleteRes.status).toEqual(200)

psmas = await pricingModuleService.listPriceSetMoneyAmounts({
prices = await pricingModuleService.listPrices({
price_list_id: [priceListId],
})
expect(psmas.length).toEqual(1)
expect(prices.length).toEqual(1)
})
})
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -366,11 +366,11 @@ medusaIntegrationTestRunner({
const result = await api.post(`admin/price-lists`, data, adminHeaders)
const priceListId = result.data.price_list.id

let psmas = await pricingModule.listPriceSetMoneyAmounts({
let prices = await pricingModule.listPrices({
price_list_id: [priceListId],
})

expect(psmas.length).toEqual(1)
expect(prices.length).toEqual(1)

const deleteRes = await api.delete(
`/admin/price-lists/${priceListId}`,
Expand All @@ -385,10 +385,10 @@ medusaIntegrationTestRunner({

expect(afterDelete.response.status).toEqual(404)

psmas = await pricingModule.listPriceSetMoneyAmounts({
prices = await pricingModule.listPrices({
price_list_id: [priceListId],
})
expect(psmas.length).toEqual(0)
expect(prices.length).toEqual(0)
})

it("should idempotently return a success even if price lists dont exist", async () => {
Expand Down Expand Up @@ -609,13 +609,13 @@ medusaIntegrationTestRunner({

const [priceList] = await pricingModule.listPriceLists(
{ id: [createdPriceList.id] },
{ relations: ["price_set_money_amounts"] }
{ relations: ["prices"] }
)
const psmaIdToDelete = priceList.price_set_money_amounts![0].id
const priceIdToDelete = priceList.prices![0].id

const response = await api.post(
`/admin/price-lists/${priceList.id}/prices/batch/remove`,
{ ids: [psmaIdToDelete] },
{ ids: [priceIdToDelete] },
adminHeaders
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ const env = {
medusaIntegrationTestRunner({
env,
testSuite: ({ dbConnection, getContainer, api }) => {
describe("/admin/products", () => {
// TODO: unskip this when there is a module compatible productSeeder
describe.skip("/admin/products", () => {
let medusaContainer

beforeAll(async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ export const createVariantPriceSet = async ({
})

return await pricingModuleService.retrieve(priceSet.id, {
relations: ["price_set_money_amounts"],
relations: ["prices"],
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const getExistingPriceListsPriceIdsStep = createStep(
)

const existingPrices = priceListIds.length
? await pricingModule.listPriceSetMoneyAmounts(
? await pricingModule.listPrices(
{ price_list_id: priceListIds },
{ relations: ["price_list"] }
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,16 @@ export const removePriceListPricesStep = createStep(
ModuleRegistrationName.PRICING
)

const psmas = await pricingModule.listPriceSetMoneyAmounts(
const prices = await pricingModule.listPrices(
{ id: ids },
{ relations: ["price_list"] }
)

await pricingModule.softDeletePriceSetMoneyAmounts(
psmas.map((psma) => psma.id)
)
await pricingModule.softDeletePrices(prices.map((price) => price.id))

return new StepResponse(
null,
psmas.map((psma) => psma.id)
prices.map((price) => price.id)
)
},
async (ids, { container }) => {
Expand All @@ -37,6 +35,6 @@ export const removePriceListPricesStep = createStep(
ModuleRegistrationName.PRICING
)

await pricingModule.restorePriceSetMoneyAmounts(ids)
await pricingModule.restorePrices(ids)
}
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import {
IPricingModuleService,
PriceSetMoneyAmountDTO,
PriceDTO,
UpdatePriceListPriceDTO,
UpdatePriceListPricesDTO,
UpdatePriceListPriceWorkflowStepDTO,
Expand Down Expand Up @@ -42,26 +42,26 @@ export const updatePriceListPricesStep = createStep(
}

const existingPrices = priceIds.length
? await pricingModule.listPriceSetMoneyAmounts(
? await pricingModule.listPrices(
{ id: priceIds },
{ relations: ["price_list"] }
)
: []

const priceListPsmaMap = new Map<string, PriceSetMoneyAmountDTO[]>()
const priceListPricesMap = new Map<string, PriceDTO[]>()
const dataBeforePriceUpdate: UpdatePriceListPricesDTO[] = []

for (const price of existingPrices) {
const priceListId = price.price_list!.id
const psmas = priceListPsmaMap.get(priceListId) || []
const prices = priceListPricesMap.get(priceListId) || []

priceListPsmaMap.set(priceListId, psmas)
priceListPricesMap.set(priceListId, prices)
}

for (const [priceListId, psmas] of Object.entries(priceListPsmaMap)) {
for (const [priceListId, prices] of Object.entries(priceListPricesMap)) {
dataBeforePriceUpdate.push({
price_list_id: priceListId,
prices: buildPriceSetPricesForModule(psmas),
prices: buildPriceSetPricesForModule(prices),
})
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
CreatePriceListPriceDTO,
CreatePriceListPriceWorkflowDTO,
IPricingModuleService,
PriceSetMoneyAmountDTO,
PriceDTO,
UpdatePriceListPriceDTO,
UpdatePriceListPriceWorkflowDTO,
UpdatePriceListPricesDTO,
Expand Down Expand Up @@ -56,33 +56,30 @@ export const upsertPriceListPricesStep = createStep(
}
}

const updatedPriceSetMoneyAmounts =
await pricingModule.listPriceSetMoneyAmounts(
{
id: priceListPricesToUpdate
.map((priceListData) =>
priceListData.prices.map((price) => price.id)
)
.filter(Boolean)
.flat(1),
},
{ relations: ["price_list"] }
)

const priceListPsmaMap = new Map<string, PriceSetMoneyAmountDTO[]>()
const updatedPrices = await pricingModule.listPrices(
{
id: priceListPricesToUpdate
.map((priceListData) => priceListData.prices.map((price) => price.id))
.filter(Boolean)
.flat(1),
},
{ relations: ["price_list"] }
)

const priceListPricesMap = new Map<string, PriceDTO[]>()
const dataBeforePriceUpdate: UpdatePriceListPricesDTO[] = []

for (const priceSetMoneyAmount of updatedPriceSetMoneyAmounts) {
const priceListId = priceSetMoneyAmount.price_list!.id
const psmas = priceListPsmaMap.get(priceListId) || []
for (const updatedPrice of updatedPrices) {
const priceListId = updatedPrice.price_list!.id
const prices = priceListPricesMap.get(priceListId) || []

priceListPsmaMap.set(priceListId, psmas)
priceListPricesMap.set(priceListId, prices)
}

for (const [priceListId, psmas] of Object.entries(priceListPsmaMap)) {
for (const [priceListId, prices] of Object.entries(priceListPricesMap)) {
dataBeforePriceUpdate.push({
price_list_id: priceListId,
prices: buildPriceSetPricesForModule(psmas),
prices: buildPriceSetPricesForModule(prices),
})
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ export function buildPriceListResponse(
): AdminPriceListRemoteQueryDTO[] {
for (const priceList of priceLists) {
priceList.rules = buildPriceListRules(priceList.price_list_rules || [])
priceList.prices = buildPriceSetPricesForCore(
priceList.price_set_money_amounts || []
)
priceList.prices = buildPriceSetPricesForCore(priceList.prices || [])
}

return priceLists.map((priceList) => cleanResponseData(priceList, apiFields))
Expand Down
Loading

0 comments on commit 930d135

Please sign in to comment.