Files
shields/core/base-service/graphql.spec.js
2021-07-09 12:53:55 +01:00

93 lines
1.8 KiB
JavaScript

import { expect } from 'chai'
import gql from 'graphql-tag'
import { print } from 'graphql/language/printer.js'
import { mergeQueries } from './graphql.js'
import '../register-chai-plugins.spec.js'
describe('mergeQueries function', function () {
it('merges valid gql queries', function () {
expect(
print(
mergeQueries(
gql`
query ($param: String!) {
foo(param: $param) {
bar
}
}
`
)
)
).to.equalIgnoreSpaces(
'query ($param: String!) { foo(param: $param) { bar } }'
)
expect(
print(
mergeQueries(
gql`
query ($param: String!) {
foo(param: $param) {
bar
}
}
`,
gql`
query {
baz
}
`
)
)
).to.equalIgnoreSpaces(
'query ($param: String!) { foo(param: $param) { bar } baz }'
)
expect(
print(
mergeQueries(
gql`
query {
foo
}
`,
gql`
query {
bar
}
`,
gql`
query {
baz
}
`
)
)
).to.equalIgnoreSpaces('{ foo bar baz }')
expect(
print(
mergeQueries(
gql`
{
foo
}
`,
gql`
{
bar
}
`
)
)
).to.equalIgnoreSpaces('{ foo bar }')
})
it('throws an error when passed invalid params', function () {
expect(() => mergeQueries('', '')).to.throw(Error)
expect(() => mergeQueries(undefined, 17, true)).to.throw(Error)
expect(() => mergeQueries(gql``, gql`foo`)).to.throw(Error)
})
})