Skip to content

Commit 7bbfec5

Browse files
committed
✨ changed id generation to take only extension nodes for extended ids
1 parent b534311 commit 7bbfec5

File tree

5 files changed

+3
-22
lines changed

5 files changed

+3
-22
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.8",
3+
"version": "0.3.0",
44
"private": false,
55
"license": "MIT",
66
"description": "GraphQL Parser providing simplier structure",

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ import { createMock, createInterfaceMock } from '@/__tests__/TreeOperations/mock
66
describe('Tree Operations tests - adding fields', () => {
77
test('Add field to root node', () => {
88
const treeMock = createMock();
9-
const oldPersonNodeId = treeMock.nodes[0].id;
109
const lastNameNode = createPlainField({
1110
type: ScalarTypes.String,
1211
name: 'lastName',
1312
});
1413

1514
mutate(treeMock, treeMock.nodes).addFieldToNode(treeMock.nodes[0], lastNameNode);
1615

17-
expect(treeMock.nodes[0].id).not.toEqual(oldPersonNodeId);
1816
expect(treeMock.nodes[0].args).toContainEqual(lastNameNode);
1917
});
2018
test('Add field to interface node', () => {
@@ -32,17 +30,13 @@ describe('Tree Operations tests - adding fields', () => {
3230
});
3331
test('Add field to field node', () => {
3432
const treeMock = createMock();
35-
const oldPersonNodeId = treeMock.nodes[0].id;
36-
const oldFriendsNodeId = treeMock.nodes[0].args[2].id;
3733
const limitNode = createPlainInputValue({
3834
type: ScalarTypes.Int,
3935
name: 'limit',
4036
});
4137

4238
mutate(treeMock, treeMock.nodes).addFieldToNode(treeMock.nodes[0].args[2], limitNode);
4339

44-
expect(treeMock.nodes[0].id).not.toEqual(oldPersonNodeId);
45-
expect(treeMock.nodes[0].args[2].id).not.toEqual(oldFriendsNodeId);
4640
expect(treeMock.nodes[0].args[2].args).toContainEqual(limitNode);
4741
});
4842
});

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import { createMock, createInterfaceMock } from '@/__tests__/TreeOperations/mock
44
describe('Tree Operations - node removal tests', () => {
55
test('Delete node from tree', () => {
66
const treeMock = createMock();
7-
const oldQueryId = treeMock.nodes[1].id;
87
const nodeCopy = JSON.parse(JSON.stringify(treeMock.nodes[0]));
98

109
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[0]);
1110

1211
expect(treeMock.nodes).not.toContainEqual(nodeCopy);
13-
expect(treeMock.nodes[0].id).not.toEqual(oldQueryId);
1412
});
1513
test('Delete interface node from tree', () => {
1614
const treeMock = createInterfaceMock();
@@ -28,13 +26,11 @@ describe('Tree Operations - node removal tests', () => {
2826
});
2927
test('Delete field from root node', () => {
3028
const treeMock = createMock();
31-
const oldPersonNodeId = treeMock.nodes[0].id;
3229
const oldField = JSON.parse(JSON.stringify(treeMock.nodes[0].args[0]));
3330

3431
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[0].args[0]);
3532

3633
expect(treeMock.nodes[0].args).not.toContainEqual(oldField);
37-
expect(treeMock.nodes[0].id).not.toEqual(oldPersonNodeId);
3834
});
3935
test('Delete field from interface node', () => {
4036
const treeMock = createInterfaceMock();
@@ -46,14 +42,10 @@ describe('Tree Operations - node removal tests', () => {
4642
});
4743
test('Delete input value from field node', () => {
4844
const treeMock = createMock();
49-
const oldFieldId = treeMock.nodes[1].args[1].id;
50-
const oldQueryId = treeMock.nodes[1].id;
5145
const oldInputValue = JSON.parse(JSON.stringify(treeMock.nodes[1].args[1].args[0]));
5246
mutate(treeMock, treeMock.nodes).removeNode(treeMock.nodes[1].args[1].args[0]);
5347

5448
expect(treeMock.nodes[1].args[1].args).not.toContainEqual(oldInputValue);
55-
expect(treeMock.nodes[1].args[1].id).not.toEqual(oldFieldId);
56-
expect(treeMock.nodes[1].id).not.toEqual(oldQueryId);
5749
});
5850
test('Delete directive from node', () => {
5951
const treeMock = createMock();

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ describe('Tree Operations tests - rename operations', () => {
3131
});
3232
test('Update field name on field node', () => {
3333
const treeMock = createMock();
34-
const oldPersonNodeId = treeMock.nodes[0].id;
3534
const oldField = JSON.parse(JSON.stringify(treeMock.nodes[0].args[1]));
3635
const updatedField = createParserField({
3736
...treeMock.nodes[0].args[1],
@@ -41,7 +40,6 @@ describe('Tree Operations tests - rename operations', () => {
4140
mutate(treeMock, treeMock.nodes).updateFieldOnNode(treeMock.nodes[0], 1, updatedField);
4241

4342
expect(treeMock.nodes[0].args).not.toContainEqual(oldField);
44-
expect(treeMock.nodes[0].id).not.toEqual(oldPersonNodeId);
4543
expect(treeMock.nodes[0].args).toContainEqual(updatedField);
4644
});
4745
test('Update field name on field node of interface', () => {
@@ -92,8 +90,6 @@ describe('Tree Operations tests - rename operations', () => {
9290
});
9391
test('Update input value name on input value node', () => {
9492
const treeMock = createMock();
95-
const oldQueryId = treeMock.nodes[1].id;
96-
const oldFieldId = treeMock.nodes[1].args[1].id;
9793
const oldInputValue = JSON.parse(JSON.stringify(treeMock.nodes[1].args[1].args[0]));
9894
const updatedInputValue = createParserField({
9995
...treeMock.nodes[1].args[1].args[0],
@@ -103,7 +99,5 @@ describe('Tree Operations tests - rename operations', () => {
10399

104100
expect(treeMock.nodes[1].args[1].args).not.toContainEqual(oldInputValue);
105101
expect(treeMock.nodes[1].args[1].args).toContainEqual(updatedInputValue);
106-
expect(treeMock.nodes[1].args[1].id).not.toEqual(oldFieldId);
107-
expect(treeMock.nodes[1].id).not.toEqual(oldQueryId);
108102
});
109103
});

src/shared/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
TypeSystemDefinition,
1212
ValueDefinition,
1313
} from '@/Models';
14+
import { isExtensionNode } from '@/TreeOperations/shared';
1415

1516
export const getTypeName = (f: FieldType): string => {
1617
if (f.type === Options.name) {
@@ -51,7 +52,7 @@ export const decompileType = (typeName: string): FieldType => {
5152
};
5253

5354
export const generateNodeId = (name: string, dataType: AllTypes, args: ParserField[]) => {
54-
const s = [name, dataType, args.map((a) => a.id).join('-')].join('-');
55+
const s = [name, dataType, isExtensionNode(dataType) ? args.map((a) => a.id).join('-') : ''].join('-');
5556
return cyrb53(s);
5657
};
5758
const cyrb53 = (str: string, seed = 0) => {

0 commit comments

Comments
 (0)