Standardize Camino query references and retire live field sidecars
This commit is contained in:
@@ -26,7 +26,7 @@ test("aggregate output uses exact count and sum types and nullable reductions",
|
||||
|
||||
test("explicit expansion and identity distinct retain checked grouped operands", async () => {
|
||||
const checked = await compile(`expand { tags {
|
||||
distinct(by: {source: {_qx: {ref: true}}, target: {color: true}}) {
|
||||
distinct(by: {source: {_camino: {ref: true}}, target: {color: true}}) {
|
||||
groups(by: {target: {color: true}}, first: 50,
|
||||
having: {sum: {source: {estimatedHours: {gt: 0}}}},
|
||||
orderBy: [{sum: {source: {estimatedHours: DESC}}}]) {
|
||||
@@ -55,7 +55,7 @@ test("distinct and grouping reject fields not determined by their selected keys"
|
||||
|
||||
test("relationship existence predicates compile to typed plans", async () => {
|
||||
const checked = await compile(
|
||||
`filter(where: {_qx: {relations: {tags: {some: {color: {in: ["red","blue"]}}}}}}) {aggregate {count}}`,
|
||||
`filter(where: {_camino: {relations: {tags: {some: {color: {in: ["red","blue"]}}}}}}) {aggregate {count}}`,
|
||||
);
|
||||
const plan = findPlan(checked.selection)!;
|
||||
assert.equal(plan.stages[1]!.operation.kind, "filter");
|
||||
@@ -88,19 +88,19 @@ test("RPC continuation rejection is local to the affected membership boundary",
|
||||
);
|
||||
const checked = await compileAggregationDocument(`query Report($after: Cursor) {root {
|
||||
tasks(first: 2, after: $after) {entries {node {cost}}}
|
||||
_qx {relations {tasks {aggregate {sum {score}}}}}
|
||||
_camino {relations {tasks {aggregate {sum {score}}}}}
|
||||
}}`);
|
||||
assert.equal(findPlan(checked.selection)!.terminals[0]!.residual, true);
|
||||
});
|
||||
|
||||
test("typed reference operands and scalar membership tests reject unbounded literal lists", async () => {
|
||||
const checked = await compile(
|
||||
`filter(where: {_qx: {ref: {in: $tasks}}}) {aggregate {count}}`,
|
||||
`filter(where: {_camino: {ref: {in: $tasks}}}) {aggregate {count}}`,
|
||||
"($tasks: [QxRef_Task!]!)",
|
||||
);
|
||||
assert.match(JSON.stringify(checked.variables), /object-ref/);
|
||||
await assert.rejects(
|
||||
compile(`filter(where: {_qx: {ref: {eq: "obj:made-up"}}}) {aggregate {count}}`),
|
||||
compile(`filter(where: {_camino: {ref: {eq: "obj:made-up"}}}) {aggregate {count}}`),
|
||||
/typed variables/,
|
||||
);
|
||||
await assert.rejects(
|
||||
|
||||
Reference in New Issue
Block a user