Skip to content

Commit 59c7ab7

Browse files
committed
wip: test: add more test for traversals
will add some more to this commit later
1 parent 888d323 commit 59c7ab7

File tree

62 files changed

+2097
-106
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+2097
-106
lines changed

spec/dev/model/simple.graphqls

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ type Skill @valueObject {
5050
}
5151

5252
"A superhero movie"
53-
type Movie @rootEntity @roles(read: ["logistics-reader"]) {
53+
type Movie @rootEntity {
5454
name: String
5555
"All the heroes starring in this movie"
5656
heroes: [Hero] @relation
@@ -71,6 +71,7 @@ type Movie @rootEntity @roles(read: ["logistics-reader"]) {
7171
type Director @rootEntity {
7272
name: String
7373
movies: [Movie] @relation(inverseOf: "director")
74+
allMissions: [Mission] @collect(path: "movies.heroes.missions", aggregate: DISTINCT)
7475
}
7576

7677
"A description of a hero suit"

spec/regression/collect/model/model.graphqls

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,22 @@ type Shipment @rootEntity {
1010
allHandlingUnits: [HandlingUnit]
1111
@collect(path: "deliveries.allHandlingUnits", aggregate: DISTINCT)
1212
allOrders: [Order] @collect(path: "deliveries.order", aggregate: DISTINCT)
13+
allInvoices: [Invoice] @collect(path: "deliveries.invoices")
1314
allDeliveryContents: [DeliveryContent] @collect(path: "deliveries.deliveryContents")
1415
allItems: [DeliveryItem] @collect(path: "deliveries.deliveryContents.items")
16+
allDeliveryLocationIdentCodes: [String]
17+
@collect(path: "deliveries.location.identCode", aggregate: DISTINCT)
1518
totalWeightInKg: Decimal3 @collect(path: "allItems.weightInKg", aggregate: SUM)
1619
maxPriority: Int @collect(path: "deliveries.priority", aggregate: MAX)
1720
itemCount: Int @collect(path: "allItems", aggregate: COUNT)
1821
deliveryCount: Int @collect(path: "deliveries", aggregate: COUNT)
1922
allDeliveriesHaveOrders: Boolean @collect(path: "deliveries.order", aggregate: NONE_NULL)
23+
allDeliveriesHaveOriginalOrders: Boolean
24+
@collect(path: "deliveries.order.originalOrder", aggregate: NONE_NULL)
2025
allDeliveriesArePayed: Boolean @collect(path: "deliveries.order.payedAt", aggregate: NONE_NULL)
2126
numberOfDeliveriesWithoutOrder: Int @collect(path: "deliveries.order", aggregate: COUNT_NULL)
27+
numberOfDeliveriesWithoutOriginalOrder: Int
28+
@collect(path: "deliveries.order.originalOrder", aggregate: COUNT_NULL)
2229
numberOfDeliveriesWithoutPayedOrder: Int
2330
@collect(path: "deliveries.order.payedAt", aggregate: COUNT_NULL)
2431
#numberOfUnpayedOrders: Int @collect(path: "allOrders.payedAt", aggregate: COUNT_NULL) # waiting for DISTINCT aggregations to be supported in collect paths
@@ -38,6 +45,7 @@ type Delivery @rootEntity {
3845
handlingUnits: [HandlingUnit] @relation
3946
shipment: Shipment @relation(inverseOf: "deliveries")
4047
order: Order @relation
48+
invoices: [Invoice] @relation
4149

4250
allItems: [DeliveryItem] @collect(path: "deliveryContents.items")
4351
allItemNumbers: [String]
@@ -102,13 +110,21 @@ type Order @rootEntity {
102110
accessGroup: String
103111
location: Location @accessField
104112
payedAt: DateTime
105-
113+
originalOrder: Order @relation # so we can have two 1-to-1 relations in a row
106114
delivery: Delivery @relation(inverseOf: "order")
107115

108116
allOuterHandlingUnits: [HandlingUnit] @collect(path: "delivery.handlingUnits")
109117
allItems: [DeliveryItem] @collect(path: "delivery.allItems")
110118
}
111119

120+
type Invoice @rootEntity {
121+
invoiceNumber: String @key
122+
accessGroup: String
123+
location: Location @accessField
124+
125+
delivery: Delivery @relation(inverseOf: "invoices")
126+
}
127+
112128
type DeliveryContent @childEntity {
113129
deliveryContentNumber: String
114130

spec/regression/collect/test-data.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,18 @@
250250
"warehouse": "North",
251251
"level": 0
252252
}
253+
},
254+
{
255+
"@id": "5",
256+
"handlingUnitNumber": "H5",
257+
"accessGroup": "H5",
258+
"location": {
259+
"identCode": "licH5"
260+
},
261+
"warehouseSlot": {
262+
"warehouse": "North",
263+
"level": 0
264+
}
253265
}
254266
],
255267
"Order": [
@@ -286,6 +298,44 @@
286298
"identCode": "licO4"
287299
}
288300
}
301+
],
302+
"Invoice": [
303+
{
304+
"@id": "1",
305+
"invoiceNumber": "I1",
306+
"accessGroup": "I1",
307+
"location": { "identCode": "licI1" }
308+
},
309+
{
310+
"@id": "2",
311+
"invoiceNumber": "I2",
312+
"accessGroup": "I2",
313+
"location": { "identCode": "licI2" }
314+
},
315+
{
316+
"@id": "3",
317+
"invoiceNumber": "I3",
318+
"accessGroup": "I3",
319+
"location": { "identCode": "licI3" }
320+
},
321+
{
322+
"@id": "4",
323+
"invoiceNumber": "I4",
324+
"accessGroup": "I4",
325+
"location": { "identCode": "licI4" }
326+
},
327+
{
328+
"@id": "5",
329+
"invoiceNumber": "I5",
330+
"accessGroup": "I5",
331+
"location": { "identCode": "licI5" }
332+
},
333+
{
334+
"@id": "6",
335+
"invoiceNumber": "I6",
336+
"accessGroup": "D6",
337+
"location": { "identCode": "licI6" }
338+
}
289339
]
290340
}
291341
}

spec/regression/collect/tests/collect-edge-count/aql/deleteDelivery.aql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ RETURN (
2626

2727
// --------------------------------
2828

29+
RETURN (
30+
FOR v_from1 IN (FOR v_id1 IN @v_ids1 RETURN CONCAT(@var1, v_id1))
31+
FOR v_edge1 IN @@deliveries_invoices
32+
FILTER v_edge1._from == v_from1
33+
REMOVE v_edge1 IN @@deliveries_invoices
34+
)
35+
36+
// --------------------------------
37+
2938
RETURN (
3039
FOR v_to1 IN (FOR v_id1 IN @v_ids1 RETURN CONCAT(@var1, v_id1))
3140
FOR v_edge1 IN @@shipments_deliveries

spec/regression/collect/tests/collect-edge-count/test.graphql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# make sure that counting edges does not include dangling edges
22
# obviously, there should be no dangling edges because we should delete them properly, but this test is probably still
33
# a good idea
4+
# TODO this does not actually test if dangling edges are filtered because deleteDelivery deletes the edges
5+
# if we want to test that, we need an test-data.ts that uses AQL directly
46

57
mutation createEdges {
68
updateShipment(
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
LET v_delivery1 = FIRST((
2+
FOR v_delivery2
3+
IN @@deliveries
4+
FILTER (v_delivery2.`deliveryNumber` == @var1)
5+
LIMIT @var2
6+
RETURN v_delivery2
7+
))
8+
RETURN {
9+
"Delivery": (IS_NULL(v_delivery1) ? null : {
10+
"allItems": (
11+
FOR v_deliveryItem1
12+
IN v_delivery1.`deliveryContents`[*].`items`[*][**]
13+
FILTER (RIGHT(v_deliveryItem1.`itemNumber`, LENGTH(@var3)) == @var4)
14+
RETURN {
15+
"itemNumber": v_deliveryItem1.`itemNumber`
16+
}
17+
)
18+
})
19+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
LET v_delivery1 = FIRST((
2+
FOR v_delivery2
3+
IN @@deliveries
4+
FILTER (v_delivery2.`deliveryNumber` == @var1)
5+
LIMIT @var2
6+
RETURN v_delivery2
7+
))
8+
RETURN {
9+
"Delivery": (IS_NULL(v_delivery1) ? null : {
10+
"allItems": (
11+
FOR v_deliveryItem1
12+
IN v_delivery1.`deliveryContents`[*].`items`[*][**]
13+
FILTER (RIGHT(v_deliveryItem1.`itemNumber`, LENGTH(@var3)) == @var4)
14+
SORT (v_deliveryItem1.`itemNumber`) DESC
15+
RETURN {
16+
"itemNumber": v_deliveryItem1.`itemNumber`
17+
}
18+
)
19+
})
20+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
LET v_delivery1 = FIRST((
2+
FOR v_delivery2
3+
IN @@deliveries
4+
FILTER (v_delivery2.`deliveryNumber` == @var1)
5+
LIMIT @var2
6+
RETURN v_delivery2
7+
))
8+
RETURN {
9+
"Delivery": (IS_NULL(v_delivery1) ? null : {
10+
"allItems": (
11+
FOR v_deliveryItem1
12+
IN v_delivery1.`deliveryContents`[*].`items`[*][**]
13+
FILTER (RIGHT(v_deliveryItem1.`itemNumber`, LENGTH(@var3)) == @var4)
14+
SORT (v_deliveryItem1.`itemNumber`) DESC
15+
LIMIT @var5, @var6
16+
RETURN {
17+
"itemNumber": v_deliveryItem1.`itemNumber`
18+
}
19+
)
20+
})
21+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
LET v_delivery1 = FIRST((
2+
FOR v_delivery2
3+
IN @@deliveries
4+
FILTER (v_delivery2.`deliveryNumber` == @var1)
5+
LIMIT @var2
6+
RETURN v_delivery2
7+
))
8+
RETURN {
9+
"Delivery": (IS_NULL(v_delivery1) ? null : {
10+
"allItems": (
11+
FOR v_deliveryItem1
12+
IN v_delivery1.`deliveryContents`[*].`items`[*][**]
13+
FILTER (RIGHT(v_deliveryItem1.`itemNumber`, LENGTH(@var3)) == @var4)
14+
LIMIT @var5, @var6
15+
RETURN {
16+
"itemNumber": v_deliveryItem1.`itemNumber`
17+
}
18+
)
19+
})
20+
}

0 commit comments

Comments
 (0)