@neo4j-cypher/react-codemirror 2.0.0-next.6 → 2.0.0-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/CypherEditor.d.ts +32 -1
- package/dist/CypherEditor.js +45 -9
- package/dist/CypherEditor.js.map +1 -1
- package/dist/e2e_tests/configuration.spec.d.ts +1 -0
- package/dist/e2e_tests/configuration.spec.js +73 -0
- package/dist/e2e_tests/configuration.spec.js.map +1 -0
- package/dist/e2e_tests/e2eUtils.js +9 -1
- package/dist/e2e_tests/e2eUtils.js.map +1 -1
- package/dist/e2e_tests/sanityChecks.spec.js +0 -9
- package/dist/e2e_tests/sanityChecks.spec.js.map +1 -1
- package/dist/e2e_tests/signatureHelp.spec.js +16 -15
- package/dist/e2e_tests/signatureHelp.spec.js.map +1 -1
- package/dist/e2e_tests/snippets.spec.d.ts +1 -0
- package/dist/e2e_tests/snippets.spec.js +63 -0
- package/dist/e2e_tests/snippets.spec.js.map +1 -0
- package/dist/e2e_tests/syntaxValidation.spec.js +3 -3
- package/dist/e2e_tests/syntaxValidation.spec.js.map +1 -1
- package/dist/lang-cypher/autocomplete.js +9 -3
- package/dist/lang-cypher/autocomplete.js.map +1 -1
- package/dist/lang-cypher/createCypherTheme.js +29 -1
- package/dist/lang-cypher/createCypherTheme.js.map +1 -1
- package/dist/lang-cypher/signatureHelp.js +36 -20
- package/dist/lang-cypher/signatureHelp.js.map +1 -1
- package/dist/neo4jSetup.js +35 -1
- package/dist/neo4jSetup.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/CypherEditor.tsx +102 -10
- package/src/e2e_tests/configuration.spec.tsx +97 -0
- package/src/e2e_tests/e2eUtils.ts +11 -1
- package/src/e2e_tests/sanityChecks.spec.tsx +0 -14
- package/src/e2e_tests/signatureHelp.spec.tsx +16 -19
- package/src/e2e_tests/snippets.spec.tsx +94 -0
- package/src/e2e_tests/syntaxValidation.spec.tsx +3 -3
- package/src/lang-cypher/autocomplete.ts +15 -4
- package/src/lang-cypher/createCypherTheme.ts +30 -1
- package/src/lang-cypher/signatureHelp.ts +57 -28
- package/src/neo4jSetup.tsx +51 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @neo4j-cypher/react-codemirror
|
|
2
2
|
|
|
3
|
+
## 2.0.0-next.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6cc9022: Adds more props to the CypherEditor component
|
|
8
|
+
- Updated dependencies [e92d8c7]
|
|
9
|
+
- @neo4j-cypher/language-support@2.0.0-next.6
|
|
10
|
+
|
|
11
|
+
## 2.0.0-next.7
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [1f790d0]
|
|
16
|
+
- @neo4j-cypher/language-support@2.0.0-next.5
|
|
17
|
+
|
|
3
18
|
## 2.0.0-next.6
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/CypherEditor.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { EditorState, Extension } from '@codemirror/state';
|
|
|
2
2
|
import { EditorView, KeyBinding, ViewUpdate } from '@codemirror/view';
|
|
3
3
|
import type { DbSchema } from '@neo4j-cypher/language-support';
|
|
4
4
|
import { Component } from 'react';
|
|
5
|
+
type DomEventHandlers = Parameters<typeof EditorView.domEventHandlers>[0];
|
|
5
6
|
export interface CypherEditorProps {
|
|
6
7
|
/**
|
|
7
8
|
* The prompt to show on single line editors
|
|
@@ -21,7 +22,7 @@ export interface CypherEditorProps {
|
|
|
21
22
|
*/
|
|
22
23
|
onExecute?: (cmd: string) => void;
|
|
23
24
|
/**
|
|
24
|
-
* The editor history
|
|
25
|
+
* The editor history navigable via up/down arrow keys. Order newest to oldest.
|
|
25
26
|
* Add to this list with the `onExecute` callback for REPL style history.
|
|
26
27
|
*/
|
|
27
28
|
history?: string[];
|
|
@@ -81,6 +82,36 @@ export interface CypherEditorProps {
|
|
|
81
82
|
* @param {ViewUpdate} viewUpdate - the view update from codemirror
|
|
82
83
|
*/
|
|
83
84
|
onChange?(value: string, viewUpdate: ViewUpdate): void;
|
|
85
|
+
/**
|
|
86
|
+
* Map of event handlers to add to the editor.
|
|
87
|
+
*
|
|
88
|
+
* Note that the props are compared by reference, meaning object defined inline
|
|
89
|
+
* will cause the editor to re-render (much like the style prop does in this example:
|
|
90
|
+
* <div style={{}} />
|
|
91
|
+
*
|
|
92
|
+
* Memoize the object if you want/need to avoid this.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* // listen to blur events
|
|
96
|
+
* <CypherEditor domEventHandlers={{blur: () => console.log("blur event fired")}} />
|
|
97
|
+
*/
|
|
98
|
+
domEventHandlers?: DomEventHandlers;
|
|
99
|
+
/**
|
|
100
|
+
* Placeholder text to display when the editor is empty.
|
|
101
|
+
*/
|
|
102
|
+
placeholder?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Whether the editor should show line numbers.
|
|
105
|
+
*
|
|
106
|
+
* @default true
|
|
107
|
+
*/
|
|
108
|
+
lineNumbers?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Whether the editor is read-only.
|
|
111
|
+
*
|
|
112
|
+
* @default false
|
|
113
|
+
*/
|
|
114
|
+
readonly?: boolean;
|
|
84
115
|
}
|
|
85
116
|
type CypherEditorState = {
|
|
86
117
|
cypherSupportEnabled: boolean;
|
package/dist/CypherEditor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Annotation, Compartment, EditorState, } from '@codemirror/state';
|
|
3
|
-
import { EditorView, keymap, lineNumbers, } from '@codemirror/view';
|
|
3
|
+
import { EditorView, keymap, lineNumbers, placeholder, } from '@codemirror/view';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
5
5
|
import { Component, createRef } from 'react';
|
|
6
6
|
import { replaceHistory, replMode as historyNavigation, } from './historyNavigation';
|
|
@@ -26,6 +26,16 @@ const executeKeybinding = (onExecute) => onExecute
|
|
|
26
26
|
: [];
|
|
27
27
|
const themeCompartment = new Compartment();
|
|
28
28
|
const keyBindingCompartment = new Compartment();
|
|
29
|
+
const lineNumbersCompartment = new Compartment();
|
|
30
|
+
const readOnlyCompartment = new Compartment();
|
|
31
|
+
const placeholderCompartment = new Compartment();
|
|
32
|
+
const domEventHandlerCompartment = new Compartment();
|
|
33
|
+
const formatLineNumber = (prompt) => (a, state) => {
|
|
34
|
+
if (state.doc.lines === 1 && prompt !== undefined) {
|
|
35
|
+
return prompt;
|
|
36
|
+
}
|
|
37
|
+
return a.toString();
|
|
38
|
+
};
|
|
29
39
|
const ExternalEdit = Annotation.define();
|
|
30
40
|
export class CypherEditor extends Component {
|
|
31
41
|
/**
|
|
@@ -79,6 +89,7 @@ export class CypherEditor extends Component {
|
|
|
79
89
|
extraKeybindings: [],
|
|
80
90
|
history: [],
|
|
81
91
|
theme: 'light',
|
|
92
|
+
lineNumbers: true,
|
|
82
93
|
};
|
|
83
94
|
debouncedOnChange = this.props.onChange
|
|
84
95
|
? debounce(this.props.onChange, 200)
|
|
@@ -117,14 +128,14 @@ export class CypherEditor extends Component {
|
|
|
117
128
|
changeListener,
|
|
118
129
|
cypher(this.schemaRef.current),
|
|
119
130
|
lineWrap ? EditorView.lineWrapping : [],
|
|
120
|
-
lineNumbers
|
|
121
|
-
formatNumber: (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
131
|
+
lineNumbersCompartment.of(this.props.lineNumbers
|
|
132
|
+
? lineNumbers({ formatNumber: formatLineNumber(this.props.prompt) })
|
|
133
|
+
: []),
|
|
134
|
+
readOnlyCompartment.of(EditorState.readOnly.of(this.props.readonly)),
|
|
135
|
+
placeholderCompartment.of(this.props.placeholder ? placeholder(this.props.placeholder) : []),
|
|
136
|
+
domEventHandlerCompartment.of(this.props.domEventHandlers
|
|
137
|
+
? EditorView.domEventHandlers(this.props.domEventHandlers)
|
|
138
|
+
: []),
|
|
128
139
|
],
|
|
129
140
|
doc: this.props.value,
|
|
130
141
|
});
|
|
@@ -167,6 +178,24 @@ export class CypherEditor extends Component {
|
|
|
167
178
|
effects: themeCompartment.reconfigure(getThemeExtension(this.props.theme, this.props.overrideThemeBackgroundColor)),
|
|
168
179
|
});
|
|
169
180
|
}
|
|
181
|
+
if (prevProps.lineNumbers !== this.props.lineNumbers ||
|
|
182
|
+
prevProps.prompt !== this.props.prompt) {
|
|
183
|
+
this.editorView.current.dispatch({
|
|
184
|
+
effects: lineNumbersCompartment.reconfigure(this.props.lineNumbers
|
|
185
|
+
? lineNumbers({ formatNumber: formatLineNumber(this.props.prompt) })
|
|
186
|
+
: []),
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
if (prevProps.readonly !== this.props.readonly) {
|
|
190
|
+
this.editorView.current.dispatch({
|
|
191
|
+
effects: readOnlyCompartment.reconfigure(EditorState.readOnly.of(this.props.readonly)),
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
if (prevProps.placeholder !== this.props.placeholder) {
|
|
195
|
+
this.editorView.current.dispatch({
|
|
196
|
+
effects: placeholderCompartment.reconfigure(this.props.placeholder ? placeholder(this.props.placeholder) : []),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
170
199
|
if (prevProps.extraKeybindings !== this.props.extraKeybindings ||
|
|
171
200
|
prevProps.onExecute !== this.props.onExecute) {
|
|
172
201
|
this.editorView.current.dispatch({
|
|
@@ -176,6 +205,13 @@ export class CypherEditor extends Component {
|
|
|
176
205
|
])),
|
|
177
206
|
});
|
|
178
207
|
}
|
|
208
|
+
if (prevProps.domEventHandlers !== this.props.domEventHandlers) {
|
|
209
|
+
this.editorView.current.dispatch({
|
|
210
|
+
effects: domEventHandlerCompartment.reconfigure(this.props.domEventHandlers
|
|
211
|
+
? EditorView.domEventHandlers(this.props.domEventHandlers)
|
|
212
|
+
: []),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
179
215
|
// This component rerenders on every keystroke and comparing the
|
|
180
216
|
// full lists of editor strings on every render could be expensive.
|
|
181
217
|
const didChangeHistoryEstimate = prevProps.history?.length !== this.props.history?.length ||
|
package/dist/CypherEditor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CypherEditor.js","sourceRoot":"","sources":["../src/CypherEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,GAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,UAAU,EAEV,MAAM,EACN,WAAW,GAEZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,cAAc,EACd,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"CypherEditor.js","sourceRoot":"","sources":["../src/CypherEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { expect, test } from '@playwright/experimental-ct-react';
|
|
3
|
+
import { CypherEditor } from '../CypherEditor';
|
|
4
|
+
test.use({ viewport: { width: 500, height: 500 } });
|
|
5
|
+
test('prompt shows up', async ({ mount, page }) => {
|
|
6
|
+
const component = await mount(_jsx(CypherEditor, { prompt: "neo4j>" }));
|
|
7
|
+
await expect(component).toContainText('neo4j>');
|
|
8
|
+
await component.update(_jsx(CypherEditor, { prompt: "test>" }));
|
|
9
|
+
await expect(component).toContainText('test>');
|
|
10
|
+
const textField = page.getByRole('textbox');
|
|
11
|
+
await textField.press('a');
|
|
12
|
+
await expect(textField).toHaveText('a');
|
|
13
|
+
});
|
|
14
|
+
test('line numbers can be turned on/off', async ({ mount }) => {
|
|
15
|
+
const component = await mount(_jsx(CypherEditor, { lineNumbers: true }));
|
|
16
|
+
await expect(component).toContainText('1');
|
|
17
|
+
await component.update(_jsx(CypherEditor, { lineNumbers: false }));
|
|
18
|
+
await expect(component).not.toContainText('1');
|
|
19
|
+
});
|
|
20
|
+
test('can configure readonly', async ({ mount, page }) => {
|
|
21
|
+
const component = await mount(_jsx(CypherEditor, { readonly: true }));
|
|
22
|
+
const textField = page.getByRole('textbox');
|
|
23
|
+
await textField.press('a');
|
|
24
|
+
await expect(textField).not.toHaveText('a');
|
|
25
|
+
await component.update(_jsx(CypherEditor, { readonly: false }));
|
|
26
|
+
await textField.press('b');
|
|
27
|
+
await expect(textField).toHaveText('b');
|
|
28
|
+
});
|
|
29
|
+
test('can set placeholder ', async ({ mount, page }) => {
|
|
30
|
+
const component = await mount(_jsx(CypherEditor, { placeholder: "bulbasaur" }));
|
|
31
|
+
const textField = page.getByRole('textbox');
|
|
32
|
+
await expect(textField).toHaveText('bulbasaur');
|
|
33
|
+
await component.update(_jsx(CypherEditor, { placeholder: "venusaur" }));
|
|
34
|
+
await expect(textField).not.toHaveText('bulbasaur');
|
|
35
|
+
await expect(textField).toHaveText('venusaur');
|
|
36
|
+
await textField.fill('abc');
|
|
37
|
+
await expect(textField).not.toHaveText('venusaur');
|
|
38
|
+
await expect(textField).toHaveText('abc');
|
|
39
|
+
});
|
|
40
|
+
test('can set/unset onFocus/onBlur', async ({ mount, page }) => {
|
|
41
|
+
const component = await mount(_jsx(CypherEditor, {}));
|
|
42
|
+
let focusFireCount = 0;
|
|
43
|
+
let blurFireCount = 0;
|
|
44
|
+
const focus = () => {
|
|
45
|
+
focusFireCount += 1;
|
|
46
|
+
};
|
|
47
|
+
const blur = () => {
|
|
48
|
+
blurFireCount += 1;
|
|
49
|
+
};
|
|
50
|
+
await component.update(_jsx(CypherEditor, { domEventHandlers: { blur, focus } }));
|
|
51
|
+
const textField = page.getByRole('textbox');
|
|
52
|
+
await textField.click();
|
|
53
|
+
await expect(textField).toBeFocused();
|
|
54
|
+
// this is to give the events time to fire
|
|
55
|
+
await expect(() => {
|
|
56
|
+
expect(focusFireCount).toBe(1);
|
|
57
|
+
expect(blurFireCount).toBe(0);
|
|
58
|
+
}).toPass();
|
|
59
|
+
await textField.blur();
|
|
60
|
+
await expect(() => {
|
|
61
|
+
expect(focusFireCount).toBe(1);
|
|
62
|
+
expect(blurFireCount).toBe(1);
|
|
63
|
+
}).toPass();
|
|
64
|
+
await component.update(_jsx(CypherEditor, {}));
|
|
65
|
+
await textField.click();
|
|
66
|
+
await expect(textField).toBeFocused();
|
|
67
|
+
await textField.blur();
|
|
68
|
+
await expect(() => {
|
|
69
|
+
expect(focusFireCount).toBe(1);
|
|
70
|
+
expect(blurFireCount).toBe(1);
|
|
71
|
+
}).toPass();
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=configuration.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/configuration.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,10 +43,18 @@ export class CypherEditorPage {
|
|
|
43
43
|
return this.checkNotificationMessage('warning', queryChunk, expectedMsg);
|
|
44
44
|
}
|
|
45
45
|
async checkNotificationMessage(type, queryChunk, expectedMsg) {
|
|
46
|
-
await expect(this.page.locator('.cm-lintRange-' + type).last()).toBeVisible({ timeout:
|
|
46
|
+
await expect(this.page.locator('.cm-lintRange-' + type).last()).toBeVisible({ timeout: 3000 });
|
|
47
47
|
await this.page.getByText(queryChunk, { exact: true }).hover();
|
|
48
48
|
await expect(this.page.locator('.cm-tooltip-hover').last()).toBeVisible();
|
|
49
49
|
await expect(this.page.getByText(expectedMsg)).toBeVisible();
|
|
50
|
+
/* Return the mouse to the beginning of the query and
|
|
51
|
+
This is because if for example we have an overlay with a
|
|
52
|
+
first interaction that covers the element we want to perform
|
|
53
|
+
the second interaction on, we won't be able to see that second element
|
|
54
|
+
*/
|
|
55
|
+
await this.page.mouse.move(0, 0);
|
|
56
|
+
// Make the sure the tooltip closed
|
|
57
|
+
await expect(this.page.locator('.cm-tooltip-hover').last()).not.toBeVisible();
|
|
50
58
|
}
|
|
51
59
|
}
|
|
52
60
|
//# sourceMappingURL=e2eUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2eUtils.js","sourceRoot":"","sources":["../../src/e2e_tests/e2eUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"e2eUtils.js","sourceRoot":"","sources":["../../src/e2e_tests/e2eUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,13 +53,4 @@ test('can complete CALL/CREATE', async ({ page, mount }) => {
|
|
|
53
53
|
await textField.press('Enter');
|
|
54
54
|
await expect(textField).toHaveText('CALL');
|
|
55
55
|
});
|
|
56
|
-
test('prompt shows up', async ({ mount, page }) => {
|
|
57
|
-
const component = await mount(_jsx(CypherEditor, { prompt: "neo4j>" }));
|
|
58
|
-
await expect(component).toContainText('neo4j>');
|
|
59
|
-
await component.update(_jsx(CypherEditor, { prompt: "test>" }));
|
|
60
|
-
await expect(component).toContainText('test>');
|
|
61
|
-
const textField = page.getByRole('textbox');
|
|
62
|
-
await textField.press('a');
|
|
63
|
-
await expect(textField).toHaveText('a');
|
|
64
|
-
});
|
|
65
56
|
//# sourceMappingURL=sanityChecks.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanityChecks.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/sanityChecks.spec.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sanityChecks.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/sanityChecks.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,21 +21,21 @@ function testTooltip(tooltip, expectations) {
|
|
|
21
21
|
test('Signature help works for functions', async ({ page, mount }) => {
|
|
22
22
|
const query = 'RETURN abs(';
|
|
23
23
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
24
|
-
await expect(page.locator('.cm-
|
|
24
|
+
await expect(page.locator('.cm-signature-help-panel')).toBeVisible({
|
|
25
25
|
timeout: 2000,
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
28
|
test('Signature help works for procedures', async ({ page, mount }) => {
|
|
29
29
|
const query = 'CALL apoc.import.csv(';
|
|
30
30
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
31
|
-
await expect(page.locator('.cm-
|
|
31
|
+
await expect(page.locator('.cm-signature-help-panel')).toBeVisible({
|
|
32
32
|
timeout: 2000,
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
test('Signature help shows the description for the first argument', async ({ page, mount, }) => {
|
|
36
36
|
const query = 'CALL apoc.import.csv(';
|
|
37
37
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
38
|
-
const tooltip = page.locator('.cm-
|
|
38
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
39
39
|
await testTooltip(tooltip, {
|
|
40
40
|
includes: [
|
|
41
41
|
'nodes :: LIST<MAP>',
|
|
@@ -46,7 +46,7 @@ test('Signature help shows the description for the first argument', async ({ pag
|
|
|
46
46
|
test('Signature help shows the description for the first argument when the cursor is at that position', async ({ page, mount, }) => {
|
|
47
47
|
const query = 'CALL apoc.import.csv()';
|
|
48
48
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, offset: 21 }));
|
|
49
|
-
const tooltip = page.locator('.cm-
|
|
49
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
50
50
|
await testTooltip(tooltip, {
|
|
51
51
|
includes: [
|
|
52
52
|
'nodes :: LIST<MAP>',
|
|
@@ -57,7 +57,7 @@ test('Signature help shows the description for the first argument when the curso
|
|
|
57
57
|
test('Signature help shows the description for the second argument', async ({ page, mount, }) => {
|
|
58
58
|
const query = 'CALL apoc.import.csv(nodes,';
|
|
59
59
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
60
|
-
const tooltip = page.locator('.cm-
|
|
60
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
61
61
|
await testTooltip(tooltip, {
|
|
62
62
|
includes: [
|
|
63
63
|
'rels :: LIST<MAP>',
|
|
@@ -68,7 +68,7 @@ test('Signature help shows the description for the second argument', async ({ pa
|
|
|
68
68
|
test('Signature help shows the description for the second argument when the cursor is at that position', async ({ page, mount, }) => {
|
|
69
69
|
const query = 'CALL apoc.import.csv(nodes,)';
|
|
70
70
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, offset: 27 }));
|
|
71
|
-
const tooltip = page.locator('.cm-
|
|
71
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
72
72
|
await testTooltip(tooltip, {
|
|
73
73
|
includes: [
|
|
74
74
|
'rels :: LIST<MAP>',
|
|
@@ -79,7 +79,7 @@ test('Signature help shows the description for the second argument when the curs
|
|
|
79
79
|
test('Signature help shows the description for the second argument when the cursor is at that position, even after whitespaces', async ({ page, mount, }) => {
|
|
80
80
|
const query = 'CALL apoc.import.csv(nodes, )';
|
|
81
81
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, offset: 28 }));
|
|
82
|
-
const tooltip = page.locator('.cm-
|
|
82
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
83
83
|
await testTooltip(tooltip, {
|
|
84
84
|
includes: [
|
|
85
85
|
'rels :: LIST<MAP>',
|
|
@@ -90,7 +90,7 @@ test('Signature help shows the description for the second argument when the curs
|
|
|
90
90
|
test('Signature help shows description for arguments with a space following a separator', async ({ page, mount, }) => {
|
|
91
91
|
const query = 'CALL apoc.import.csv(nodes, ';
|
|
92
92
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
93
|
-
const tooltip = page.locator('.cm-
|
|
93
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
94
94
|
await testTooltip(tooltip, {
|
|
95
95
|
includes: [
|
|
96
96
|
'rels :: LIST<MAP>',
|
|
@@ -101,7 +101,7 @@ test('Signature help shows description for arguments with a space following a se
|
|
|
101
101
|
test('Signature help shows the description for the third argument', async ({ page, mount, }) => {
|
|
102
102
|
const query = 'CALL apoc.import.csv(nodes, rels,';
|
|
103
103
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
104
|
-
const tooltip = page.locator('.cm-
|
|
104
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
105
105
|
await testTooltip(tooltip, {
|
|
106
106
|
includes: [
|
|
107
107
|
'config :: MAP',
|
|
@@ -115,7 +115,7 @@ test('Signature help works on multiline queries', async ({ page, mount }) => {
|
|
|
115
115
|
rels,
|
|
116
116
|
`;
|
|
117
117
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
118
|
-
const tooltip = page.locator('.cm-
|
|
118
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
119
119
|
await testTooltip(tooltip, {
|
|
120
120
|
includes: [
|
|
121
121
|
'config :: MAP',
|
|
@@ -126,25 +126,26 @@ test('Signature help works on multiline queries', async ({ page, mount }) => {
|
|
|
126
126
|
test('Signature help only shows the description past the last argument', async ({ page, mount, }) => {
|
|
127
127
|
const query = 'CALL apoc.import.csv(nodes, rels, config,';
|
|
128
128
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
129
|
-
|
|
129
|
+
1;
|
|
130
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
130
131
|
await testTooltip(tooltip, {
|
|
131
132
|
includes: [
|
|
132
|
-
'
|
|
133
|
+
'apoc.import.csv(nodes :: LIST<MAP>, rels :: LIST<MAP>, config :: MAP)',
|
|
134
|
+
'Imports `NODE` and `RELATIONSHIP` values with the given labels and types from the provided CSV file.',
|
|
133
135
|
],
|
|
134
|
-
excludes: ['config :: MAP'],
|
|
135
136
|
});
|
|
136
137
|
});
|
|
137
138
|
test('Signature help does not show any help when method finished', async ({ page, mount, }) => {
|
|
138
139
|
const query = 'CALL apoc.import.csv(nodes, rels, config)';
|
|
139
140
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
140
|
-
await expect(page.locator('.cm-
|
|
141
|
+
await expect(page.locator('.cm-signature-help-panel')).not.toBeVisible({
|
|
141
142
|
timeout: 2000,
|
|
142
143
|
});
|
|
143
144
|
});
|
|
144
145
|
test('Signature help does not blow up on empty query', async ({ page, mount, }) => {
|
|
145
146
|
const query = '';
|
|
146
147
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
147
|
-
await expect(page.locator('.cm-
|
|
148
|
+
await expect(page.locator('.cm-signature-help-panel')).not.toBeVisible({
|
|
148
149
|
timeout: 2000,
|
|
149
150
|
});
|
|
150
151
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatureHelp.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/signatureHelp.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAOrD,SAAS,WAAW,CAAC,OAAgB,EAAE,YAAiC;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;YACzC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;YAC7C,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACnE,MAAM,KAAK,GAAG,aAAa,CAAC;IAE5B,MAAM,KAAK,CACT,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,UAAU,EAC3B,SAAS,EAAE,IAAI,GACf,CACH,CAAC;IAEF,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"signatureHelp.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/signatureHelp.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { expect, test } from '@playwright/experimental-ct-react';
|
|
3
|
+
import { CypherEditor } from '../CypherEditor';
|
|
4
|
+
test.use({ viewport: { width: 500, height: 500 } });
|
|
5
|
+
test('can complete pattern snippet', async ({ page, mount }) => {
|
|
6
|
+
await mount(_jsx(CypherEditor, {}));
|
|
7
|
+
const textField = page.getByRole('textbox');
|
|
8
|
+
await textField.fill('MATCH ()-[]->()');
|
|
9
|
+
await page.locator('.cm-tooltip-autocomplete').getByText('-[]->()').click();
|
|
10
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
11
|
+
await textField.press('Tab');
|
|
12
|
+
await textField.press('Tab');
|
|
13
|
+
await expect(textField).toHaveText('MATCH ()-[]->()-[ ]->( )');
|
|
14
|
+
});
|
|
15
|
+
test('can navigate snippet', async ({ page, mount }) => {
|
|
16
|
+
await mount(_jsx(CypherEditor, {}));
|
|
17
|
+
const textField = page.getByRole('textbox');
|
|
18
|
+
await textField.fill('CREATE INDEX abc FOR ()');
|
|
19
|
+
await page
|
|
20
|
+
.locator('.cm-tooltip-autocomplete')
|
|
21
|
+
.getByText('-[]-()', { exact: true })
|
|
22
|
+
.click();
|
|
23
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
24
|
+
await expect(page.locator('.cm-snippetField')).toHaveCount(2);
|
|
25
|
+
await textField.press('Tab');
|
|
26
|
+
await textField.press('Shift+Tab');
|
|
27
|
+
await expect(textField).toHaveText('CREATE INDEX abc FOR ()-[ ]-( )');
|
|
28
|
+
await textField.press('a');
|
|
29
|
+
await expect(textField).toHaveText('CREATE INDEX abc FOR ()-[a]-( )');
|
|
30
|
+
await textField.press('Escape');
|
|
31
|
+
await textField.press('Escape');
|
|
32
|
+
await expect(page.locator('.cm-snippetField')).toHaveCount(0);
|
|
33
|
+
await textField.press('Tab');
|
|
34
|
+
await expect(textField).toHaveText('CREATE INDEX abc FOR ()-[a ]-( )');
|
|
35
|
+
});
|
|
36
|
+
test('can accept completion inside pattern snippet', async ({ page, mount, }) => {
|
|
37
|
+
await mount(_jsx(CypherEditor, { schema: { labels: ['City'] } }));
|
|
38
|
+
const textField = page.getByRole('textbox');
|
|
39
|
+
await textField.fill('MATCH ()-[]->()');
|
|
40
|
+
await page.locator('.cm-tooltip-autocomplete').getByText('-[]->()').click();
|
|
41
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
42
|
+
// move to node
|
|
43
|
+
await textField.press('Tab');
|
|
44
|
+
// get & accept completion
|
|
45
|
+
await textField.press(':');
|
|
46
|
+
await expect(page.locator('.cm-tooltip-autocomplete').getByText('City')).toBeVisible();
|
|
47
|
+
await textField.press('Tab');
|
|
48
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
49
|
+
// tab out of the snippet
|
|
50
|
+
await textField.press('Tab');
|
|
51
|
+
await expect(textField).toHaveText('MATCH ()-[]->()-[ ]->(:City)');
|
|
52
|
+
});
|
|
53
|
+
test('does not automatically open completion panel for expressions after snippet trigger char', async ({ page, mount, }) => {
|
|
54
|
+
await mount(_jsx(CypherEditor, {}));
|
|
55
|
+
const textField = page.getByRole('textbox');
|
|
56
|
+
await textField.fill('RETURN (1)');
|
|
57
|
+
// expect the panel to not show up
|
|
58
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
59
|
+
// unless manually triggered
|
|
60
|
+
await textField.press('Control+ ');
|
|
61
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).toBeVisible();
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=snippets.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippets.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/snippets.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ test('Semantic errors are correctly accumulated', async ({ page, mount }) => {
|
|
|
53
53
|
const editorPage = new CypherEditorPage(page);
|
|
54
54
|
const query = 'CALL { MATCH (n) } IN TRANSACTIONS OF -1 ROWS';
|
|
55
55
|
await mount(_jsx(CypherEditor, { value: query }));
|
|
56
|
-
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
56
|
+
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, a FINISH clause, an update clause, a unit subquery call, or a procedure call with no YIELD).');
|
|
57
57
|
await editorPage.checkErrorMessage('-1', "Invalid input. '-1' is not a valid value. Must be a positive integer");
|
|
58
58
|
});
|
|
59
59
|
test('Multiline errors are correctly placed', async ({ page, mount }) => {
|
|
@@ -63,7 +63,7 @@ test('Multiline errors are correctly placed', async ({ page, mount }) => {
|
|
|
63
63
|
} IN TRANSACTIONS
|
|
64
64
|
OF -1 ROWS`;
|
|
65
65
|
await mount(_jsx(CypherEditor, { value: query }));
|
|
66
|
-
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
66
|
+
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, a FINISH clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
67
67
|
await editorPage.checkErrorMessage('-1', "Invalid input. '-1' is not a valid value. Must be a positive integer");
|
|
68
68
|
});
|
|
69
69
|
test('Validation errors are correctly overlapped', async ({ page, mount }) => {
|
|
@@ -73,7 +73,7 @@ test('Validation errors are correctly overlapped', async ({ page, mount }) => {
|
|
|
73
73
|
} IN TRANSACTIONS
|
|
74
74
|
OF -1 ROWS`;
|
|
75
75
|
await mount(_jsx(CypherEditor, { value: query }));
|
|
76
|
-
await editorPage.checkErrorMessage('-1', 'Query cannot conclude with CALL (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
76
|
+
await editorPage.checkErrorMessage('-1', 'Query cannot conclude with CALL (must be a RETURN clause, a FINISH clause, an update clause, a unit subquery call, or a procedure call with no YIELD).');
|
|
77
77
|
await editorPage.checkErrorMessage('-1', "Invalid input. '-1' is not a valid value. Must be a positive integer");
|
|
78
78
|
});
|
|
79
79
|
//# sourceMappingURL=syntaxValidation.spec.js.map
|