Skip to content

Commit b8f86bc

Browse files
no1semanTotktonada
authored andcommitted
1 parent 24e1a35 commit b8f86bc

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

test/integration/graphql_test.lua

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,3 +1726,81 @@ function g.test_specifiedByURL_long_scalar()
17261726
t.assert_equals(long_type_schema.specifiedByURL, 'https://github.com/tarantool/graphql/wiki/Long')
17271727
t.assert_equals(errors, nil)
17281728
end
1729+
1730+
function g.test_skip_include_directives()
1731+
local function callback(_, _)
1732+
return {
1733+
uri = 'uri1',
1734+
uris = {
1735+
uri = 'uri2'
1736+
}
1737+
}
1738+
end
1739+
1740+
local query_schema = {
1741+
['test'] = {
1742+
kind = types.object({
1743+
name = 'selection',
1744+
fields = {
1745+
uri = types.string,
1746+
uris = types.object({
1747+
name = 'uris',
1748+
fields = {
1749+
uri = types.string,
1750+
}
1751+
}),
1752+
}
1753+
}),
1754+
resolve = callback,
1755+
}
1756+
}
1757+
1758+
-- check request without directives
1759+
local data, errors = check_request('{test{uri uris{uri}}}', query_schema)
1760+
t.assert_equals(errors, nil)
1761+
t.assert_items_equals(data, {test = {uri = "uri1", uris = {uri = "uri2"}}})
1762+
1763+
-- check request with directive: skip if == false
1764+
data, errors = check_request(
1765+
'query TEST($skip_field: Boolean){test{uri@skip(if: $skip_field) uris{uri}}}',
1766+
query_schema,
1767+
nil,
1768+
nil,
1769+
{ variables = { skip_field = false }}
1770+
)
1771+
t.assert_equals(errors, nil)
1772+
t.assert_items_equals(data, {test = {uri = "uri1", uris = {uri = "uri2"}}})
1773+
1774+
-- check request with directive: skip if == true
1775+
data, errors = check_request(
1776+
'query TEST($skip_field: Boolean){test{uri@skip(if: $skip_field) uris{uri}}}',
1777+
query_schema,
1778+
nil,
1779+
nil,
1780+
{ variables = { skip_field = true }}
1781+
)
1782+
t.assert_equals(errors, nil)
1783+
t.assert_items_equals(data, {test = {uris = {uri = "uri2"}}})
1784+
1785+
-- check request with directive: include if == false
1786+
data, errors = check_request(
1787+
'query TEST($include_field: Boolean){test{uri@include(if: $include_field) uris{uri}}}',
1788+
query_schema,
1789+
nil,
1790+
nil,
1791+
{ variables = { include_field = false }}
1792+
)
1793+
t.assert_equals(errors, nil)
1794+
t.assert_items_equals(data, {test = {uris = {uri = "uri2"}}})
1795+
1796+
-- check request with directive: include if == true
1797+
data, errors = check_request(
1798+
'query TEST($include_field: Boolean){test{uri@include(if: $include_field) uris{uri}}}',
1799+
query_schema,
1800+
nil,
1801+
nil,
1802+
{ variables = { include_field = true }}
1803+
)
1804+
t.assert_equals(errors, nil)
1805+
t.assert_items_equals(data, {test = {uri = "uri1", uris = {uri = "uri2"}}})
1806+
end

0 commit comments

Comments
 (0)