feat(modules-sdk): remote query retrieve (#6849)

What:

Remote Joiner options to check if keys exist on entry points or relations
This commit is contained in:
Carlos R. L. Rodrigues
2024-03-29 09:26:24 +00:00
committed by GitHub
parent cbb5e6bd99
commit 1c6ba4468e
10 changed files with 356 additions and 34 deletions
@@ -241,12 +241,7 @@ describe("RemoteJoiner", () => {
fields: ["name"],
},
],
args: [
{
name: "id",
value: "3",
},
],
args: [],
}
const data = await joiner.query(query)
@@ -802,4 +797,34 @@ describe("RemoteJoiner", () => {
`Service with alias "user" was not found.`
)
})
it("Should throw when any key of the entrypoint isn't found", async () => {
const query = RemoteJoiner.parseQuery(`
query {
order (id: 201) {
id
number
}
}
`)
const data = await joiner.query(query, {
throwIfKeyNotFound: true,
})
expect(data.length).toEqual(1)
const queryNotFound = RemoteJoiner.parseQuery(`
query {
order (id: "ord_1234556") {
id
number
}
}
`)
const dataNotFound = joiner.query(queryNotFound, {
throwIfKeyNotFound: true,
})
expect(dataNotFound).rejects.toThrowError("order id not found: ord_1234556")
})
})
@@ -569,19 +569,13 @@ describe("RemoteJoiner", () => {
fields: ["name"],
},
],
args: [
{
name: "id",
value: "3",
},
],
}
await joiner.query(query)
expect(serviceMock.orderService).toHaveBeenCalledTimes(1)
expect(serviceMock.orderService).toHaveBeenCalledWith({
args: [],
args: undefined,
fields: ["number", "date", "products", "user_id"],
expands: {
products: {
@@ -589,7 +583,7 @@ describe("RemoteJoiner", () => {
fields: ["product_id"],
},
},
options: { id: ["3"] },
options: { id: undefined },
})
expect(serviceMock.userService).toHaveBeenCalledTimes(1)