committed by
GitHub
parent
95c538c675
commit
5a8a889c6d
@@ -19,7 +19,7 @@ describe("RemoteJoiner.parseQuery", () => {
|
||||
const rjQuery = parser.parseQuery()
|
||||
|
||||
expect(rjQuery).toEqual({
|
||||
service: "order",
|
||||
alias: "order",
|
||||
fields: ["id", "number", "date"],
|
||||
expands: [],
|
||||
})
|
||||
@@ -50,7 +50,7 @@ describe("RemoteJoiner.parseQuery", () => {
|
||||
const rjQuery = parser.parseQuery()
|
||||
|
||||
expect(rjQuery).toEqual({
|
||||
service: "order",
|
||||
alias: "order",
|
||||
fields: ["id", "number", "date"],
|
||||
expands: [],
|
||||
args: [
|
||||
@@ -77,6 +77,44 @@ describe("RemoteJoiner.parseQuery", () => {
|
||||
})
|
||||
})
|
||||
|
||||
it("Simple query with mapping fields to services", async () => {
|
||||
const graphqlQuery = `
|
||||
query {
|
||||
order {
|
||||
id
|
||||
number
|
||||
date
|
||||
products {
|
||||
product_id
|
||||
variant_id
|
||||
order
|
||||
variant {
|
||||
name
|
||||
sku
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
const parser = new GraphQLParser(graphqlQuery, {})
|
||||
const rjQuery = parser.parseQuery()
|
||||
|
||||
expect(rjQuery).toEqual({
|
||||
alias: "order",
|
||||
fields: ["id", "number", "date", "products"],
|
||||
expands: [
|
||||
{
|
||||
property: "products",
|
||||
fields: ["product_id", "variant_id", "order", "variant"],
|
||||
},
|
||||
{
|
||||
property: "products.variant",
|
||||
fields: ["name", "sku"],
|
||||
},
|
||||
],
|
||||
})
|
||||
})
|
||||
|
||||
it("Nested query with fields", async () => {
|
||||
const graphqlQuery = `
|
||||
query {
|
||||
@@ -100,7 +138,7 @@ describe("RemoteJoiner.parseQuery", () => {
|
||||
const rjQuery = parser.parseQuery()
|
||||
|
||||
expect(rjQuery).toEqual({
|
||||
service: "order",
|
||||
alias: "order",
|
||||
fields: ["id", "number", "date", "products"],
|
||||
expands: [
|
||||
{
|
||||
@@ -138,7 +176,7 @@ describe("RemoteJoiner.parseQuery", () => {
|
||||
const rjQuery = parser.parseQuery()
|
||||
|
||||
expect(rjQuery).toEqual({
|
||||
service: "order",
|
||||
alias: "order",
|
||||
fields: ["id", "number", "date", "products"],
|
||||
expands: [
|
||||
{
|
||||
@@ -205,7 +243,7 @@ describe("RemoteJoiner.parseQuery", () => {
|
||||
const rjQuery = parser.parseQuery()
|
||||
|
||||
expect(rjQuery).toEqual({
|
||||
service: "order",
|
||||
alias: "order",
|
||||
fields: ["id", "number", "date", "products"],
|
||||
expands: [
|
||||
{
|
||||
|
||||
@@ -45,8 +45,9 @@ const fetchServiceDataCallback = async (
|
||||
relationship?: any
|
||||
) => {
|
||||
const serviceConfig = expand.serviceConfig
|
||||
const moduleRegistryName =
|
||||
lowerCaseFirst(serviceConfig.serviceName) + "Service"
|
||||
const moduleRegistryName = !serviceConfig.serviceName.endsWith("Service")
|
||||
? lowerCaseFirst(serviceConfig.serviceName) + "Service"
|
||||
: serviceConfig.serviceName
|
||||
|
||||
const service = container.resolve(moduleRegistryName)
|
||||
const methodName = relationship?.inverse
|
||||
@@ -74,7 +75,7 @@ describe("RemoteJoiner", () => {
|
||||
|
||||
it("Simple query of a service, its id and no fields specified", async () => {
|
||||
const query = {
|
||||
service: "User",
|
||||
service: "user",
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
@@ -143,7 +144,7 @@ describe("RemoteJoiner", () => {
|
||||
|
||||
it("Query of a service, expanding a property and restricting the fields expanded", async () => {
|
||||
const query = {
|
||||
service: "User",
|
||||
service: "user",
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
@@ -215,7 +216,7 @@ describe("RemoteJoiner", () => {
|
||||
|
||||
it("Query a service expanding multiple nested properties", async () => {
|
||||
const query = {
|
||||
service: "Order",
|
||||
service: "order",
|
||||
fields: ["number", "date", "products"],
|
||||
expands: [
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@ describe("RemoteJoiner", () => {
|
||||
|
||||
it("Simple query of a service, its id and no fields specified", async () => {
|
||||
const query = {
|
||||
service: "User",
|
||||
service: "user",
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
@@ -69,20 +69,62 @@ describe("RemoteJoiner", () => {
|
||||
})
|
||||
})
|
||||
|
||||
it("Transforms main service name into PascalCase", async () => {
|
||||
it("Simple query of a service by its alias", async () => {
|
||||
const query = {
|
||||
service: "user",
|
||||
alias: "customer",
|
||||
fields: ["id"],
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
value: "1",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
await joiner.query(query)
|
||||
|
||||
expect(serviceMock.userService).toHaveBeenCalledTimes(1)
|
||||
expect(serviceMock.userService).toHaveBeenCalledWith({
|
||||
args: [],
|
||||
fields: ["id"],
|
||||
options: { id: ["1"] },
|
||||
})
|
||||
})
|
||||
|
||||
it("Simple query of a service by its alias with extra arguments", async () => {
|
||||
const query = {
|
||||
alias: "me",
|
||||
fields: ["id"],
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
name: "arg1",
|
||||
value: "abc",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
await joiner.query(query)
|
||||
|
||||
expect(serviceMock.userService).toHaveBeenCalledTimes(1)
|
||||
expect(serviceMock.userService).toHaveBeenCalledWith({
|
||||
args: [
|
||||
{
|
||||
name: "arg1",
|
||||
value: "abc",
|
||||
},
|
||||
],
|
||||
fields: ["id"],
|
||||
options: { id: [1] },
|
||||
})
|
||||
})
|
||||
|
||||
it("Simple query of a service, its id and a few fields specified", async () => {
|
||||
const query = {
|
||||
service: "User",
|
||||
service: "user",
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
@@ -148,7 +190,7 @@ describe("RemoteJoiner", () => {
|
||||
|
||||
it("Query a service using more than 1 argument, expanding a property with another argument", async () => {
|
||||
const query = {
|
||||
service: "User",
|
||||
service: "user",
|
||||
args: [
|
||||
{
|
||||
name: "id",
|
||||
@@ -213,7 +255,7 @@ describe("RemoteJoiner", () => {
|
||||
|
||||
it("Query a service expanding multiple nested properties", async () => {
|
||||
const query = {
|
||||
service: "Order",
|
||||
service: "order",
|
||||
fields: ["number", "date", "products"],
|
||||
expands: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user