Feat: Filter price lists by customer group (#1431)
* add customer groups to price list factory * add integration test for filtering price lists by customer group * normalize list price list query * add customer groups to list-price-list queryparameters * query based on customergroups if they exist for price lists * remove verbose flag * add another price list with a customer group * remove console.log * pr feedback * add query type to repository * add query type to repository * set groups to undefined instead of deleting parameter * remove wildcard destructing * make buildQuery type specific to price lists * steal Adriens types * fix(medusa): support searching for price lists (#1407) * delete instead of settting groups to undefined * add groups to query with q * use simple customer group factory instead of manual creation * Update simple-customer-group-factory.ts * remove comma that breaks integration-tests Co-authored-by: Zakaria El Asri <33696020+zakariaelas@users.noreply.github.com>
This commit is contained in:
co-authored by
Zakaria El Asri
parent
0b2a3a0f0e
commit
a69b52e031
@@ -1,3 +1,4 @@
|
||||
const { PriceList, CustomerGroup } = require("@medusajs/medusa")
|
||||
const path = require("path")
|
||||
|
||||
const setupServer = require("../../../helpers/setup-server")
|
||||
@@ -8,6 +9,9 @@ const {
|
||||
simpleProductFactory,
|
||||
simplePriceListFactory,
|
||||
} = require("../../factories")
|
||||
const {
|
||||
simpleCustomerGroupFactory,
|
||||
} = require("../../factories/simple-customer-group-factory")
|
||||
const adminSeeder = require("../../helpers/admin-seeder")
|
||||
const customerSeeder = require("../../helpers/customer-seeder")
|
||||
const priceListSeeder = require("../../helpers/price-list-seeder")
|
||||
@@ -322,6 +326,48 @@ describe("/admin/price-lists", () => {
|
||||
)
|
||||
expect(response.data.count).toEqual(1)
|
||||
})
|
||||
|
||||
it("lists only price lists with customer_group", async () => {
|
||||
await customerSeeder(dbConnection)
|
||||
|
||||
await simplePriceListFactory(dbConnection, {
|
||||
id: "test-list-cgroup-1",
|
||||
customer_groups: ["customer-group-1"],
|
||||
})
|
||||
await simplePriceListFactory(dbConnection, {
|
||||
id: "test-list-cgroup-2",
|
||||
customer_groups: ["customer-group-2"],
|
||||
})
|
||||
await simplePriceListFactory(dbConnection, {
|
||||
id: "test-list-cgroup-3",
|
||||
customer_groups: ["customer-group-3"],
|
||||
})
|
||||
await simplePriceListFactory(dbConnection, {
|
||||
id: "test-list-no-cgroup",
|
||||
})
|
||||
|
||||
const api = useApi()
|
||||
|
||||
const response = await api
|
||||
.get(
|
||||
`/admin/price-lists?customer_groups[]=customer-group-1,customer-group-2`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: "Bearer test_token",
|
||||
},
|
||||
}
|
||||
)
|
||||
.catch((err) => {
|
||||
console.warn(err.response.data)
|
||||
})
|
||||
|
||||
expect(response.status).toEqual(200)
|
||||
expect(response.data.price_lists.length).toEqual(2)
|
||||
expect(response.data.price_lists).toEqual([
|
||||
expect.objectContaining({ id: "test-list-cgroup-1" }),
|
||||
expect.objectContaining({ id: "test-list-cgroup-2" }),
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
describe("POST /admin/price-lists/:id", () => {
|
||||
|
||||
Reference in New Issue
Block a user