mirror of
https://github.com/expo/apollo-codegen.git
synced 2026-11-14 17:47:52 -10:00
74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
import { parseValue } from 'graphql';
|
|
|
|
import { valueFromValueNode } from '../src/utilities/graphql';
|
|
|
|
describe('#valueFromValueNode', () => {
|
|
test(`should return a number for an IntValue`, () => {
|
|
const valueNode = parseValue('1');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toBe(1);
|
|
});
|
|
|
|
test(`should return a number for a FloatValue`, () => {
|
|
const valueNode = parseValue('1.0');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toBe(1.0);
|
|
});
|
|
|
|
test(`should return a boolean for a BooleanValue`, () => {
|
|
const valueNode = parseValue('true');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toBe(true);
|
|
});
|
|
|
|
test(`should return null for a NullValue`, () => {
|
|
const valueNode = parseValue('null');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toBe(null);
|
|
});
|
|
|
|
test(`should return a string for a StringValue`, () => {
|
|
const valueNode = parseValue('"foo"');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toBe('foo');
|
|
});
|
|
|
|
test(`should return a string for an EnumValue`, () => {
|
|
const valueNode = parseValue('JEDI');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toBe('JEDI');
|
|
});
|
|
|
|
test(`should return an object for a Variable`, () => {
|
|
const valueNode = parseValue('$something');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toEqual({ kind: 'Variable', variableName: 'something' });
|
|
});
|
|
|
|
test(`should return an array for a ListValue`, () => {
|
|
const valueNode = parseValue('[ "foo", 1, JEDI, $something ]');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toEqual(['foo', 1, 'JEDI', { kind: 'Variable', variableName: 'something' }]);
|
|
});
|
|
|
|
test(`should return an object for an ObjectValue`, () => {
|
|
const valueNode = parseValue('{ foo: "foo", bar: 1, bla: JEDI, baz: $something }');
|
|
const value = valueFromValueNode(valueNode);
|
|
|
|
expect(value).toEqual({
|
|
foo: 'foo',
|
|
bar: 1,
|
|
bla: 'JEDI',
|
|
baz: { kind: 'Variable', variableName: 'something' }
|
|
});
|
|
});
|
|
});
|