@neo4j-cypher/react-codemirror 2.0.0-canary-89dc5bb → 2.0.0-canary-5acfe46

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.
Files changed (32) hide show
  1. package/dist/CypherEditor.d.ts +1 -1
  2. package/dist/CypherEditor.js +2 -1
  3. package/dist/CypherEditor.js.map +1 -1
  4. package/dist/e2e_tests/autoCompletion.spec.js +62 -37
  5. package/dist/e2e_tests/autoCompletion.spec.js.map +1 -1
  6. package/dist/e2e_tests/e2eUtils.js +7 -5
  7. package/dist/e2e_tests/e2eUtils.js.map +1 -1
  8. package/dist/e2e_tests/signatureHelp.spec.js +59 -13
  9. package/dist/e2e_tests/signatureHelp.spec.js.map +1 -1
  10. package/dist/e2e_tests/snippets.spec.js +2 -2
  11. package/dist/e2e_tests/snippets.spec.js.map +1 -1
  12. package/dist/e2e_tests/syntaxValidation.spec.js +13 -4
  13. package/dist/e2e_tests/syntaxValidation.spec.js.map +1 -1
  14. package/dist/lang-cypher/langCypher.d.ts +1 -0
  15. package/dist/lang-cypher/langCypher.js.map +1 -1
  16. package/dist/lang-cypher/lintWorker.d.ts +1 -0
  17. package/dist/lang-cypher/lintWorker.js +3 -0
  18. package/dist/lang-cypher/lintWorker.js.map +1 -1
  19. package/dist/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +2 -2
  21. package/src/CypherEditor.tsx +8 -2
  22. package/src/e2e_tests/autoCompletion.spec.tsx +83 -56
  23. package/src/e2e_tests/e2eUtils.ts +7 -5
  24. package/src/e2e_tests/signatureHelp.spec.tsx +74 -13
  25. package/src/e2e_tests/snippets.spec.tsx +2 -2
  26. package/src/e2e_tests/syntaxValidation.spec.tsx +32 -4
  27. package/src/lang-cypher/langCypher.ts +1 -0
  28. package/src/lang-cypher/lintWorker.ts +4 -1
  29. package/dist/e2e_tests/helpers.spec.d.ts +0 -1
  30. package/dist/e2e_tests/helpers.spec.js +0 -12
  31. package/dist/e2e_tests/helpers.spec.js.map +0 -1
  32. package/src/e2e_tests/helpers.spec.tsx +0 -17
@@ -194,7 +194,10 @@ test('can complete rel types', async ({ page, mount }) => {
194
194
  await expect(component).toContainText('MATCH (n)-[:KNOWS');
195
195
  });
196
196
 
197
- test('can complete YIELD clauses without manual trigger', async ({ page, mount }) => {
197
+ test('can complete YIELD clauses without manual trigger', async ({
198
+ page,
199
+ mount,
200
+ }) => {
198
201
  const component = await mount(
199
202
  <CypherEditor
200
203
  schema={{
@@ -213,7 +216,10 @@ test('can complete YIELD clauses without manual trigger', async ({ page, mount }
213
216
  await expect(component).toContainText('CALL dbms.components() YIELD edition');
214
217
  });
215
218
 
216
- test('automatic yield trigger is not case sensitive', async ({ page, mount }) => {
219
+ test('automatic yield trigger is not case sensitive', async ({
220
+ page,
221
+ mount,
222
+ }) => {
217
223
  const component = await mount(
218
224
  <CypherEditor
219
225
  schema={{
@@ -237,9 +243,11 @@ test('can complete functions', async ({ page, mount }) => {
237
243
  <CypherEditor
238
244
  schema={{
239
245
  functions: {
240
- function123: {
241
- ...testData.emptyFunction,
242
- name: 'function123',
246
+ 'CYPHER 5': {
247
+ function123: {
248
+ ...testData.emptyFunction,
249
+ name: 'function123',
250
+ },
243
251
  },
244
252
  },
245
253
  }}
@@ -265,7 +273,9 @@ test('can complete procedures', async ({ page, mount }) => {
265
273
  <CypherEditor
266
274
  schema={{
267
275
  procedures: {
268
- 'db.ping': { ...testData.emptyProcedure, name: 'db.ping' },
276
+ 'CYPHER 5': {
277
+ 'db.ping': { ...testData.emptyProcedure, name: 'db.ping' },
278
+ },
269
279
  },
270
280
  }}
271
281
  />,
@@ -346,16 +356,9 @@ test('shows signature help information on auto-completion for procedures', async
346
356
  page,
347
357
  mount,
348
358
  }) => {
349
- await mount(
350
- <CypherEditor
351
- schema={testData.mockSchema}
352
- featureFlags={{
353
- signatureInfoOnAutoCompletions: true,
354
- }}
355
- />,
356
- );
359
+ await mount(<CypherEditor schema={testData.mockSchema} />);
357
360
  const procName = 'apoc.periodic.iterate';
358
- const procedure = testData.mockSchema.procedures[procName];
361
+ const procedure = testData.mockSchema.procedures['CYPHER 5'][procName];
359
362
 
360
363
  const textField = page.getByRole('textbox');
361
364
  await textField.fill('CALL apoc.periodic.');
@@ -371,16 +374,9 @@ test('shows signature help information on auto-completion for functions', async
371
374
  page,
372
375
  mount,
373
376
  }) => {
374
- await mount(
375
- <CypherEditor
376
- schema={testData.mockSchema}
377
- featureFlags={{
378
- signatureInfoOnAutoCompletions: true,
379
- }}
380
- />,
381
- );
377
+ await mount(<CypherEditor schema={testData.mockSchema} />);
382
378
  const fnName = 'apoc.coll.combinations';
383
- const fn = testData.mockSchema.functions[fnName];
379
+ const fn = testData.mockSchema.functions['CYPHER 5'][fnName];
384
380
 
385
381
  const textField = page.getByRole('textbox');
386
382
  await textField.fill('RETURN apoc.coll.');
@@ -401,10 +397,11 @@ test('shows deprecated procedures as strikethrough on auto-completion', async ({
401
397
  await mount(
402
398
  <CypherEditor
403
399
  schema={{
404
- procedures: { [procName]: testData.mockSchema.procedures[procName] },
405
- }}
406
- featureFlags={{
407
- signatureInfoOnAutoCompletions: true,
400
+ procedures: {
401
+ 'CYPHER 5': {
402
+ [procName]: testData.mockSchema.procedures['CYPHER 5'][procName],
403
+ },
404
+ },
408
405
  }}
409
406
  />,
410
407
  );
@@ -425,10 +422,11 @@ test('shows deprecated function as strikethrough on auto-completion', async ({
425
422
  await mount(
426
423
  <CypherEditor
427
424
  schema={{
428
- functions: { [fnName]: testData.mockSchema.functions[fnName] },
429
- }}
430
- featureFlags={{
431
- signatureInfoOnAutoCompletions: true,
425
+ functions: {
426
+ 'CYPHER 5': {
427
+ [fnName]: testData.mockSchema.functions['CYPHER 5'][fnName],
428
+ },
429
+ },
432
430
  }}
433
431
  />,
434
432
  );
@@ -444,14 +442,7 @@ test('does not signature help information on auto-completion if docs and signatu
444
442
  page,
445
443
  mount,
446
444
  }) => {
447
- await mount(
448
- <CypherEditor
449
- schema={testData.mockSchema}
450
- featureFlags={{
451
- signatureInfoOnAutoCompletions: true,
452
- }}
453
- />,
454
- );
445
+ await mount(<CypherEditor schema={testData.mockSchema} />);
455
446
 
456
447
  const textField = page.getByRole('textbox');
457
448
  await textField.fill('C');
@@ -468,17 +459,16 @@ test('shows signature help information on auto-completion if description is not
468
459
  <CypherEditor
469
460
  schema={{
470
461
  procedures: {
471
- 'db.ping': {
472
- ...testData.emptyProcedure,
473
- description: 'foo',
474
- signature: '',
475
- name: 'db.ping',
462
+ 'CYPHER 5': {
463
+ 'db.ping': {
464
+ ...testData.emptyProcedure,
465
+ description: 'foo',
466
+ signature: '',
467
+ name: 'db.ping',
468
+ },
476
469
  },
477
470
  },
478
471
  }}
479
- featureFlags={{
480
- signatureInfoOnAutoCompletions: true,
481
- }}
482
472
  />,
483
473
  );
484
474
 
@@ -497,17 +487,16 @@ test('shows signature help information on auto-completion if signature is not em
497
487
  <CypherEditor
498
488
  schema={{
499
489
  procedures: {
500
- 'db.ping': {
501
- ...testData.emptyProcedure,
502
- description: '',
503
- signature: 'foo',
504
- name: 'db.ping',
490
+ 'CYPHER 5': {
491
+ 'db.ping': {
492
+ ...testData.emptyProcedure,
493
+ description: '',
494
+ signature: 'foo',
495
+ name: 'db.ping',
496
+ },
505
497
  },
506
498
  },
507
499
  }}
508
- featureFlags={{
509
- signatureInfoOnAutoCompletions: true,
510
- }}
511
500
  />,
512
501
  );
513
502
 
@@ -517,3 +506,41 @@ test('shows signature help information on auto-completion if signature is not em
517
506
  await expect(page.locator('.cm-tooltip-autocomplete')).toBeVisible();
518
507
  await expect(page.locator('.cm-completionInfo')).toBeVisible();
519
508
  });
509
+
510
+ test('completions depend on the Cypher version', async ({ page, mount }) => {
511
+ await mount(
512
+ <CypherEditor
513
+ schema={{
514
+ functions: {
515
+ 'CYPHER 5': {
516
+ cypher5Function: {
517
+ ...testData.emptyFunction,
518
+ name: 'cypher5Function',
519
+ },
520
+ },
521
+ 'CYPHER 25': {
522
+ cypher25Function: {
523
+ ...testData.emptyFunction,
524
+ name: 'cypher25Function',
525
+ },
526
+ },
527
+ },
528
+ }}
529
+ featureFlags={{ cypher25: true }}
530
+ />,
531
+ );
532
+
533
+ const textField = page.getByRole('textbox');
534
+
535
+ await textField.fill('CYPHER 5 RETURN cypher');
536
+
537
+ await expect(
538
+ page.locator('.cm-tooltip-autocomplete').getByText('cypher5Function'),
539
+ ).toBeVisible();
540
+
541
+ await textField.fill('CYPHER 25 RETURN cypher');
542
+
543
+ await expect(
544
+ page.locator('.cm-tooltip-autocomplete').getByText('cypher25Function'),
545
+ ).toBeVisible();
546
+ });
@@ -60,12 +60,12 @@ export class CypherEditorPage {
60
60
  }
61
61
 
62
62
  async checkNoNotificationMessage(type: 'error' | 'warning') {
63
- await this.page.waitForTimeout(3000);
63
+ await this.page.waitForTimeout(10000);
64
64
  await expect(this.page.locator('.cm-lintRange-' + type)).toHaveCount(0, {
65
- timeout: 3000,
65
+ timeout: 10000,
66
66
  });
67
67
  await expect(this.page.locator('.cm-lintPoint-' + type)).toHaveCount(0, {
68
- timeout: 3000,
68
+ timeout: 10000,
69
69
  });
70
70
  }
71
71
 
@@ -75,11 +75,13 @@ export class CypherEditorPage {
75
75
  expectedMsg: string,
76
76
  ) {
77
77
  await expect(this.page.locator('.cm-lintRange-' + type).last()).toBeVisible(
78
- { timeout: 3000 },
78
+ { timeout: 10000 },
79
79
  );
80
80
 
81
81
  await this.page.getByText(queryChunk, { exact: true }).hover();
82
- await expect(this.page.locator('.cm-tooltip-hover').last()).toBeVisible();
82
+ await expect(this.page.locator('.cm-tooltip-hover').last()).toBeVisible({
83
+ timeout: 10000,
84
+ });
83
85
  await expect(this.page.getByText(expectedMsg)).toBeVisible();
84
86
  /* Return the mouse to the beginning of the query and
85
87
  This is because if for example we have an overlay with a
@@ -11,7 +11,8 @@ type TooltipExpectations = {
11
11
  excludes?: string[];
12
12
  };
13
13
 
14
- const importCsvProc = testData.mockSchema.procedures['apoc.import.csv'];
14
+ const importCsvProc =
15
+ testData.mockSchema.procedures['CYPHER 5']['apoc.import.csv'];
15
16
 
16
17
  function testTooltip(tooltip: Locator, expectations: TooltipExpectations) {
17
18
  const includes = expectations.includes ?? [];
@@ -20,7 +21,7 @@ function testTooltip(tooltip: Locator, expectations: TooltipExpectations) {
20
21
  const included = Promise.all(
21
22
  includes.map((text) => {
22
23
  return expect(tooltip).toContainText(text, {
23
- timeout: 2000,
24
+ timeout: 10000,
24
25
  });
25
26
  }),
26
27
  );
@@ -28,7 +29,7 @@ function testTooltip(tooltip: Locator, expectations: TooltipExpectations) {
28
29
  const excluded = Promise.all(
29
30
  excludes.map((text) => {
30
31
  return expect(tooltip).not.toContainText(text, {
31
- timeout: 2000,
32
+ timeout: 10000,
32
33
  });
33
34
  }),
34
35
  );
@@ -48,7 +49,7 @@ test('Signature help works for functions', async ({ page, mount }) => {
48
49
  );
49
50
 
50
51
  await expect(page.locator('.cm-signature-help-panel')).toBeVisible({
51
- timeout: 2000,
52
+ timeout: 10000,
52
53
  });
53
54
  });
54
55
 
@@ -64,7 +65,7 @@ test('Signature help works for procedures', async ({ page, mount }) => {
64
65
  );
65
66
 
66
67
  await expect(page.locator('.cm-signature-help-panel')).toBeVisible({
67
- timeout: 2000,
68
+ timeout: 10000,
68
69
  });
69
70
  });
70
71
 
@@ -86,9 +87,9 @@ test('Signature help shows the description for the first argument', async ({
86
87
 
87
88
  await testTooltip(tooltip, {
88
89
  includes: [
89
- testData.mockSchema.procedures['apoc.import.csv'].argumentDescription[0]
90
- .description,
91
- testData.mockSchema.procedures['apoc.import.csv'].description,
90
+ testData.mockSchema.procedures['CYPHER 5']['apoc.import.csv']
91
+ .argumentDescription[0].description,
92
+ testData.mockSchema.procedures['CYPHER 5']['apoc.import.csv'].description,
92
93
  ],
93
94
  });
94
95
  });
@@ -289,7 +290,7 @@ test('Signature help does not show any help when method finished', async ({
289
290
  );
290
291
 
291
292
  await expect(page.locator('.cm-signature-help-panel')).not.toBeVisible({
292
- timeout: 2000,
293
+ timeout: 10000,
293
294
  });
294
295
  });
295
296
 
@@ -308,7 +309,7 @@ test('Signature help does not blow up on empty query', async ({
308
309
  );
309
310
 
310
311
  await expect(page.locator('.cm-signature-help-panel')).not.toBeVisible({
311
- timeout: 2000,
312
+ timeout: 10000,
312
313
  });
313
314
  });
314
315
 
@@ -331,7 +332,7 @@ test('Signature help is shown below the text by default', async ({
331
332
  await expect(
332
333
  page.locator('.cm-signature-help-panel.cm-tooltip-below'),
333
334
  ).toBeVisible({
334
- timeout: 2000,
335
+ timeout: 10000,
335
336
  });
336
337
  });
337
338
 
@@ -355,7 +356,7 @@ test('Setting showSignatureTooltipBelow to true shows the signature help above t
355
356
  await expect(
356
357
  page.locator('.cm-signature-help-panel.cm-tooltip-below'),
357
358
  ).toBeVisible({
358
- timeout: 2000,
359
+ timeout: 10000,
359
360
  });
360
361
  });
361
362
 
@@ -379,6 +380,66 @@ test('Setting showSignatureTooltipBelow to false shows the signature help above
379
380
  await expect(
380
381
  page.locator('.cm-signature-help-panel.cm-tooltip-above'),
381
382
  ).toBeVisible({
382
- timeout: 2000,
383
+ timeout: 10000,
384
+ });
385
+ });
386
+
387
+ test('Signature help depends on the Cypher version', async ({
388
+ page,
389
+ mount,
390
+ }) => {
391
+ const cypher5ArgDescription = 'The Cypher 5 statement to run.';
392
+ const cypher25ArgDescription = 'The Cypher 25 statement to run.';
393
+
394
+ await mount(
395
+ <CypherEditor
396
+ schema={{
397
+ functions: {
398
+ 'CYPHER 5': {
399
+ cypher5Function: {
400
+ ...testData.emptyFunction,
401
+ argumentDescription: [
402
+ {
403
+ isDeprecated: false,
404
+ description: cypher5ArgDescription,
405
+ name: 'statement',
406
+ type: 'STRING',
407
+ },
408
+ ],
409
+ name: 'cypher5Function',
410
+ },
411
+ },
412
+ 'CYPHER 25': {
413
+ cypher25Function: {
414
+ ...testData.emptyFunction,
415
+ argumentDescription: [
416
+ {
417
+ isDeprecated: false,
418
+ description: cypher25ArgDescription,
419
+ name: 'statement',
420
+ type: 'STRING',
421
+ },
422
+ ],
423
+ name: 'cypher25Function',
424
+ },
425
+ },
426
+ },
427
+ }}
428
+ featureFlags={{ cypher25: true }}
429
+ />,
430
+ );
431
+
432
+ const textField = page.getByRole('textbox');
433
+ await textField.fill('CYPHER 5 RETURN cypher5Function(');
434
+ const tooltip = page.locator('.cm-signature-help-panel');
435
+
436
+ await testTooltip(tooltip, {
437
+ includes: [cypher5ArgDescription],
438
+ });
439
+
440
+ await textField.fill('CYPHER 25 RETURN cypher25Function(');
441
+
442
+ await testTooltip(tooltip, {
443
+ includes: [cypher25ArgDescription],
383
444
  });
384
445
  });
@@ -65,11 +65,11 @@ test('can accept completion inside pattern snippet', async ({
65
65
  page.locator('.cm-tooltip-autocomplete').getByText('City'),
66
66
  ).toBeVisible();
67
67
 
68
- await textField.press('Tab');
68
+ await textField.press('Tab', { delay: 300 });
69
69
  await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
70
70
 
71
71
  // tab out of the snippet
72
- await textField.press('Tab');
72
+ await textField.press('Tab', { delay: 300 });
73
73
 
74
74
  await expect(textField).toHaveText('MATCH ()-[]->()-[ ]->(:City)');
75
75
  });
@@ -13,7 +13,7 @@ test('Prop lint set to false disables syntax validation', async ({
13
13
  await mount(<CypherEditor value={query} lint={false} />);
14
14
 
15
15
  await expect(page.locator('.cm-lintRange-error').last()).not.toBeVisible({
16
- timeout: 2000,
16
+ timeout: 10000,
17
17
  });
18
18
  });
19
19
 
@@ -24,7 +24,7 @@ test('Can turn linting back on', async ({ page, mount }) => {
24
24
  const component = await mount(<CypherEditor value={query} lint={false} />);
25
25
 
26
26
  await expect(page.locator('.cm-lintRange-error').last()).not.toBeVisible({
27
- timeout: 2000,
27
+ timeout: 10000,
28
28
  });
29
29
 
30
30
  await component.update(<CypherEditor value={query} lint={true} />);
@@ -192,7 +192,7 @@ test('Strikethroughs are shown for deprecated functions', async ({
192
192
  await mount(<CypherEditor value={query} schema={testData.mockSchema} />);
193
193
  await expect(
194
194
  editorPage.page.locator('.cm-deprecated-element').last(),
195
- ).toBeVisible({ timeout: 3000 });
195
+ ).toBeVisible({ timeout: 10000 });
196
196
  await editorPage.checkWarningMessage('id', 'Function id is deprecated.');
197
197
  });
198
198
 
@@ -206,10 +206,38 @@ test('Strikethroughs are shown for deprecated procedures', async ({
206
206
  await mount(<CypherEditor value={query} schema={testData.mockSchema} />);
207
207
  await expect(
208
208
  editorPage.page.locator('.cm-deprecated-element').last(),
209
- ).toBeVisible({ timeout: 3000 });
209
+ ).toBeVisible({ timeout: 10000 });
210
210
 
211
211
  await editorPage.checkWarningMessage(
212
212
  'apoc.create.uuids',
213
213
  'Procedure apoc.create.uuids is deprecated.',
214
214
  );
215
215
  });
216
+
217
+ test('Syntax validation depends on the Cypher version', async ({
218
+ page,
219
+ mount,
220
+ }) => {
221
+ await mount(
222
+ <CypherEditor
223
+ schema={testData.mockSchema}
224
+ featureFlags={{ cypher25: true }}
225
+ />,
226
+ );
227
+
228
+ const editorPage = new CypherEditorPage(page);
229
+ const textField = page.getByRole('textbox');
230
+ await textField.fill('CYPHER 5 CALL apoc.create.uuids(5)');
231
+
232
+ await editorPage.checkWarningMessage(
233
+ 'apoc.create.uuids',
234
+ 'Procedure apoc.create.uuids is deprecated.',
235
+ );
236
+
237
+ await textField.fill('CYPHER 25 CALL apoc.create.uuids(5)');
238
+
239
+ await editorPage.checkErrorMessage(
240
+ 'apoc.create.uuids',
241
+ 'Procedure apoc.create.uuids is not present in the database.',
242
+ );
243
+ });
@@ -20,6 +20,7 @@ export type CypherConfig = {
20
20
  showSignatureTooltipBelow?: boolean;
21
21
  featureFlags?: {
22
22
  consoleCommands?: boolean;
23
+ cypher25?: boolean;
23
24
  };
24
25
  schema?: DbSchema;
25
26
  useLightVersion: boolean;
@@ -8,12 +8,15 @@ import workerpool from 'workerpool';
8
8
  function lintCypherQuery(
9
9
  query: string,
10
10
  dbSchema: DbSchema,
11
- featureFlags: { consoleCommands?: boolean } = {},
11
+ featureFlags: { consoleCommands?: boolean; cypher25?: boolean } = {},
12
12
  ) {
13
13
  // We allow to override the consoleCommands feature flag
14
14
  if (featureFlags.consoleCommands !== undefined) {
15
15
  _internalFeatureFlags.consoleCommands = featureFlags.consoleCommands;
16
16
  }
17
+ if (featureFlags.cypher25 !== undefined) {
18
+ _internalFeatureFlags.cypher25 = featureFlags.cypher25;
19
+ }
17
20
  return _lintCypherQuery(query, dbSchema);
18
21
  }
19
22
 
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { test } from '@playwright/experimental-ct-react';
3
- import { CypherEditor } from '../CypherEditor';
4
- import { CypherEditorPage } from './e2eUtils';
5
- test.use({ viewport: { width: 1000, height: 500 } });
6
- test.fail('checkNoNotification fails on query with error', async ({ page, mount }) => {
7
- const editorPage = new CypherEditorPage(page);
8
- const query = 'METCH (n) RETURN n';
9
- await mount(_jsx(CypherEditor, { value: query }));
10
- await editorPage.checkNoNotificationMessage('error');
11
- });
12
- //# sourceMappingURL=helpers.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/helpers.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAErD,IAAI,CAAC,IAAI,CACP,+CAA+C,EAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACnC,MAAM,KAAK,CAAC,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC;IAE5C,MAAM,UAAU,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC,CACF,CAAC"}
@@ -1,17 +0,0 @@
1
- import { test } from '@playwright/experimental-ct-react';
2
- import { CypherEditor } from '../CypherEditor';
3
- import { CypherEditorPage } from './e2eUtils';
4
-
5
- test.use({ viewport: { width: 1000, height: 500 } });
6
-
7
- test.fail(
8
- 'checkNoNotification fails on query with error',
9
- async ({ page, mount }) => {
10
- const editorPage = new CypherEditorPage(page);
11
-
12
- const query = 'METCH (n) RETURN n';
13
- await mount(<CypherEditor value={query} />);
14
-
15
- await editorPage.checkNoNotificationMessage('error');
16
- },
17
- );