-
Notifications
You must be signed in to change notification settings - Fork 2k
/
findDeprecatedUsages-test.js
76 lines (61 loc) · 1.86 KB
/
findDeprecatedUsages-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// @flow strict
import { expect } from 'chai';
import { describe, it } from 'mocha';
import { parse } from '../../language/parser';
import { buildSchema } from '../buildASTSchema';
import { findDeprecatedUsages } from '../findDeprecatedUsages';
describe('findDeprecatedUsages', () => {
const schema = buildSchema(`
enum EnumType {
NORMAL_VALUE
DEPRECATED_VALUE @deprecated(reason: "Some enum reason.")
}
type Query {
normalField(enumArg: [EnumType]): String
deprecatedField: String @deprecated(reason: "Some field reason.")
}
`);
it('should report empty set for no deprecated usages', () => {
const errors = findDeprecatedUsages(
schema,
parse('{ normalField(enumArg: [NORMAL_VALUE]) }'),
);
expect(errors.length).to.equal(0);
});
it('should ignore unknown stuff', () => {
const errors = findDeprecatedUsages(
schema,
parse(`
{
unknownField(unknownArg: UNKNOWN_VALUE)
normalField(enumArg: UNKNOWN_VALUE)
}
`),
);
expect(errors.length).to.equal(0);
});
it('should report usage of deprecated fields', () => {
const errors = findDeprecatedUsages(
schema,
parse('{ normalField, deprecatedField }'),
);
const errorMessages = errors.map((err) => err.message);
expect(errorMessages).to.deep.equal([
'The field "Query.deprecatedField" is deprecated. Some field reason.',
]);
});
it('should report usage of deprecated enums', () => {
const errors = findDeprecatedUsages(
schema,
parse(`
{
normalField(enumArg: [NORMAL_VALUE, DEPRECATED_VALUE])
}
`),
);
const errorMessages = errors.map((err) => err.message);
expect(errorMessages).to.deep.equal([
'The enum value "EnumType.DEPRECATED_VALUE" is deprecated. Some enum reason.',
]);
});
});