Skip to content

Commit af51d9f

Browse files
committed
♻️ Refactored tests and added universal remove nod
1 parent 8166d7f commit af51d9f

File tree

4 files changed

+27
-10
lines changed

4 files changed

+27
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "graphql-js-tree",
3-
"version": "0.2.5",
3+
"version": "0.2.6",
44
"private": false,
55
"license": "MIT",
66
"description": "GraphQL Parser providing simplier structure",

src/TreeOperations/tree.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
124124
const parentDirective = parent.directives.find((d) => d.args.some((a) => a === node));
125125
if (parentDirective) {
126126
const indexInDirective = parentDirective.args.indexOf(node);
127-
deleteFieldFromNode(parent, indexInDirective);
127+
deleteFieldFromNode(parentDirective, indexInDirective);
128128
}
129129
}
130130
return;

src/__tests__/TreeOperations/mocks.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
createPlainDirectiveImplementation,
99
createPlainArgument,
1010
createPlainEnumValue,
11+
createUnionMember,
1112
} from '@/shared';
1213

1314
const mainMock: ParserTree = {
@@ -121,6 +122,15 @@ const mainMock: ParserTree = {
121122
}),
122123
],
123124
}),
125+
createRootField({
126+
name: 'AnUnion',
127+
type: TypeDefinition.UnionTypeDefinition,
128+
args: [
129+
createUnionMember({ name: 'Car' }),
130+
createUnionMember({ name: 'Ship' }),
131+
createUnionMember({ name: 'Plane' }),
132+
],
133+
}),
124134
createRootDirectiveField({
125135
name: 'model',
126136
args: [createPlainInputValue({ name: 'maxAge', type: ScalarTypes.Int })],

src/__tests__/TreeOperations/tree.remove.spec.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,20 @@ describe('Tree Operations - node removal tests', () => {
5050
});
5151
test('Delete argument node from Directive Instance', () => {
5252
const treeMock = createMock();
53-
const oldFieldId = treeMock.nodes[1].args[1].id;
54-
const oldQueryId = treeMock.nodes[1].id;
55-
const oldInputValue = JSON.parse(JSON.stringify(treeMock.nodes[1].args[1].args[0]));
56-
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[1].args[1].args[0]);
57-
58-
expect(treeMock.nodes[1].args[1].args).not.toContainEqual(oldInputValue);
59-
expect(treeMock.nodes[1].args[1].id).not.toEqual(oldFieldId);
60-
expect(treeMock.nodes[1].id).not.toEqual(oldQueryId);
53+
const oldArgument = JSON.parse(JSON.stringify(treeMock.nodes[0].directives[0].args[0]));
54+
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[0].directives[0].args[0]);
55+
expect(treeMock.nodes[0].directives[0].args).not.toContainEqual(oldArgument);
56+
});
57+
test('Delete union member from union node', () => {
58+
const treeMock = createMock();
59+
const oldArgument = JSON.parse(JSON.stringify(treeMock.nodes[4].args[0]));
60+
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[4].args[0]);
61+
expect(treeMock.nodes[3].args).not.toContainEqual(oldArgument);
62+
});
63+
test('Delete enum value from enum node', () => {
64+
const treeMock = createMock();
65+
const oldArgument = JSON.parse(JSON.stringify(treeMock.nodes[3].args[0]));
66+
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[3].args[0]);
67+
expect(treeMock.nodes[3].args).not.toContainEqual(oldArgument);
6168
});
6269
});

0 commit comments

Comments
 (0)