chore(utils): Add default ordering to the internal service factory list/listAndCount (#6436)
**What** Default ordering. By default, only the top level entity ordering is applied using the primary keys, the relations are default ordered by the foreign keys. It include tests fixing for deterministic data ordering
This commit is contained in:
1 parent
691f68c3b8
commit
c319edb8e0
14 files changed
+208
-78
No files matched your search
+61
-16
@@ -44,12 +44,44 @@ moduleIntegrationTestRunner({
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "test2",
|
||||
geo_zones: [
|
||||
{
|
||||
type: GeoZoneType.COUNTRY,
|
||||
country_code: "fr",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "_test",
|
||||
geo_zones: [
|
||||
{
|
||||
type: GeoZoneType.COUNTRY,
|
||||
country_code: "fr",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
let listedSets = await service.list({
|
||||
type: createdSet1.type,
|
||||
})
|
||||
let listedSets = await service.list(
|
||||
{
|
||||
type: createdSet1.type,
|
||||
},
|
||||
{
|
||||
relations: ["service_zones"],
|
||||
}
|
||||
)
|
||||
|
||||
const listedSets2 = await service.list(
|
||||
{
|
||||
type: createdSet1.type,
|
||||
},
|
||||
{
|
||||
relations: ["service_zones"],
|
||||
}
|
||||
)
|
||||
|
||||
expect(listedSets).toEqual(
|
||||
expect.arrayContaining([
|
||||
@@ -58,6 +90,15 @@ moduleIntegrationTestRunner({
|
||||
])
|
||||
)
|
||||
|
||||
// Respecting order id by default
|
||||
expect(listedSets[1].service_zones).toEqual([
|
||||
expect.objectContaining({ name: "test" }),
|
||||
expect.objectContaining({ name: "test2" }),
|
||||
expect.objectContaining({ name: "_test" }),
|
||||
])
|
||||
|
||||
expect(listedSets2).toEqual(listedSets2)
|
||||
|
||||
listedSets = await service.list({
|
||||
name: createdSet2.name,
|
||||
})
|
||||
@@ -1206,9 +1247,11 @@ moduleIntegrationTestRunner({
|
||||
|
||||
expect(updatedFulfillmentSets).toHaveLength(2)
|
||||
|
||||
let i = 0
|
||||
for (const data_ of updateData) {
|
||||
expect(updatedFulfillmentSets[i]).toEqual(
|
||||
const expectedFulfillmentSet = updatedFulfillmentSets.find(
|
||||
(f) => f.id === data_.id
|
||||
)
|
||||
expect(expectedFulfillmentSet).toEqual(
|
||||
expect.objectContaining({
|
||||
id: data_.id,
|
||||
name: data_.name,
|
||||
@@ -1231,7 +1274,6 @@ moduleIntegrationTestRunner({
|
||||
]),
|
||||
})
|
||||
)
|
||||
++i
|
||||
}
|
||||
|
||||
const serviceZones = await service.listServiceZones()
|
||||
@@ -1310,16 +1352,18 @@ moduleIntegrationTestRunner({
|
||||
|
||||
expect(updatedFulfillmentSets).toHaveLength(2)
|
||||
|
||||
let i = 0
|
||||
for (const data_ of updateData) {
|
||||
expect(updatedFulfillmentSets[i]).toEqual(
|
||||
const expectedFulfillmentSet = updatedFulfillmentSets.find(
|
||||
(f) => f.id === data_.id
|
||||
)
|
||||
expect(expectedFulfillmentSet).toEqual(
|
||||
expect.objectContaining({
|
||||
id: data_.id,
|
||||
name: data_.name,
|
||||
type: data_.type,
|
||||
service_zones: expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
id: createdFulfillmentSets[i].service_zones[0].id,
|
||||
id: expect.any(String),
|
||||
}),
|
||||
expect.objectContaining({
|
||||
id: expect.any(String),
|
||||
@@ -1338,7 +1382,6 @@ moduleIntegrationTestRunner({
|
||||
]),
|
||||
})
|
||||
)
|
||||
++i
|
||||
}
|
||||
|
||||
const serviceZones = await service.listServiceZones()
|
||||
@@ -1470,9 +1513,11 @@ moduleIntegrationTestRunner({
|
||||
|
||||
expect(updatedServiceZones).toHaveLength(2)
|
||||
|
||||
let i = 0
|
||||
for (const data_ of updateData) {
|
||||
expect(updatedServiceZones[i]).toEqual(
|
||||
const expectedServiceZone = updatedServiceZones.find(
|
||||
(serviceZone) => serviceZone.id === data_.id
|
||||
)
|
||||
expect(expectedServiceZone).toEqual(
|
||||
expect.objectContaining({
|
||||
id: data_.id,
|
||||
name: data_.name,
|
||||
@@ -1485,7 +1530,6 @@ moduleIntegrationTestRunner({
|
||||
]),
|
||||
})
|
||||
)
|
||||
++i
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1617,16 +1661,17 @@ moduleIntegrationTestRunner({
|
||||
|
||||
expect(updatedGeoZones).toHaveLength(2)
|
||||
|
||||
let i = 0
|
||||
for (const data_ of updateData) {
|
||||
expect(updatedGeoZones[i]).toEqual(
|
||||
const expectedGeoZone = updatedGeoZones.find(
|
||||
(geoZone) => geoZone.id === data_.id
|
||||
)
|
||||
expect(expectedGeoZone).toEqual(
|
||||
expect.objectContaining({
|
||||
id: data_.id,
|
||||
type: data_.type,
|
||||
country_code: data_.country_code,
|
||||
})
|
||||
)
|
||||
++i
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
Reference in new issue
Block a user