Skip to content

Commit 8aa0329

Browse files
committed
wip: test: add more test for traversals
will add some more to this commit later
1 parent ac8077d commit 8aa0329

File tree

43 files changed

+1210
-66
lines changed

Some content is hidden

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

43 files changed

+1210
-66
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: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ 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")
1516
totalWeightInKg: Decimal3 @collect(path: "allItems.weightInKg", aggregate: SUM)
@@ -38,6 +39,7 @@ type Delivery @rootEntity {
3839
handlingUnits: [HandlingUnit] @relation
3940
shipment: Shipment @relation(inverseOf: "deliveries")
4041
order: Order @relation
42+
invoices: [Invoice] @relation
4143

4244
allItems: [DeliveryItem] @collect(path: "deliveryContents.items")
4345
allItemNumbers: [String]
@@ -109,6 +111,14 @@ type Order @rootEntity {
109111
allItems: [DeliveryItem] @collect(path: "delivery.allItems")
110112
}
111113

114+
type Invoice @rootEntity {
115+
invoiceNumber: String @key
116+
accessGroup: String
117+
location: Location @accessField
118+
119+
delivery: Delivery @relation(inverseOf: "invoices")
120+
}
121+
112122
type DeliveryContent @childEntity {
113123
deliveryContentNumber: String
114124

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: 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+
SORT (v_deliveryItem1.`itemNumber`) DESC
14+
LIMIT @var3, @var4
15+
RETURN {
16+
"itemNumber": v_deliveryItem1.`itemNumber`
17+
}
18+
)
19+
})
20+
}
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+
LIMIT @var3, @var4
14+
RETURN {
15+
"itemNumber": v_deliveryItem1.`itemNumber`
16+
}
17+
)
18+
})
19+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"unordered": {
3+
"data": {
4+
"Delivery": {
5+
"allItems": [
6+
{
7+
"itemNumber": "DI1.1.2"
8+
}
9+
]
10+
}
11+
}
12+
},
13+
"ordered": {
14+
"data": {
15+
"Delivery": {
16+
"allItems": [
17+
{
18+
"itemNumber": "DI1.2.1"
19+
}
20+
]
21+
}
22+
}
23+
}
24+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
query unordered {
2+
Delivery(deliveryNumber: "D1") {
3+
allItems(skip: 1, first: 1) {
4+
itemNumber
5+
}
6+
}
7+
}
8+
9+
query ordered {
10+
Delivery(deliveryNumber: "D1") {
11+
allItems(orderBy: itemNumber_DESC, skip: 1, first: 1) {
12+
itemNumber
13+
}
14+
}
15+
}
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+
SORT (v_deliveryItem1.`itemNumber`) DESC
14+
RETURN {
15+
"itemNumber": v_deliveryItem1.`itemNumber`
16+
}
17+
)
18+
})
19+
}

0 commit comments

Comments
 (0)