diff --git a/packages/browser-tests/cypress/integration/console/editor.spec.js b/packages/browser-tests/cypress/integration/console/editor.spec.js index 75962ba51..152e4ad17 100644 --- a/packages/browser-tests/cypress/integration/console/editor.spec.js +++ b/packages/browser-tests/cypress/integration/console/editor.spec.js @@ -1,6 +1,6 @@ /// -const baseUrl = "http://localhost:9999" +const baseUrl = "http://localhost:9999"; describe("appendQuery", () => { const consoleConfiguration = { @@ -128,7 +128,11 @@ describe("&query URL param", () => { it("should append and select multiline query", () => { cy.visit(baseUrl); - cy.runQuery(`select x\nfrom long_sequence(1);\n\n-- a\n-- b\n-- c\n${'{upArrow}'.repeat(5)}`); + cy.runQuery( + `select x\nfrom long_sequence(1);\n\n-- a\n-- b\n-- c\n${"{upArrow}".repeat( + 5 + )}` + ); const query = encodeURIComponent("select x+1\nfrom\nlong_sequence(1);"); cy.visit(`${baseUrl}?query=${query}&executeQuery=true`); cy.getGridRow(0).should("contain", "2").snapshot(); @@ -148,8 +152,7 @@ describe("autocomplete", () => { it("should work when tables list is empty", () => { cy.visit(baseUrl); cy.typeQuery("select * from tel"); - cy.getAutocomplete().should("not.contain", "telemetry"); - cy.getAutocomplete().should("contain", "TABLE"); + cy.getAutocomplete().should("not.be.visible"); cy.clearEditor(); cy.runQuery('create table "my_secrets" ("secret" string)'); cy.typeQuery("select * from my_"); @@ -194,3 +197,36 @@ describe("errors", () => { cy.getErrorMarker().snapshot(); }); }); + +describe("running query with F9", () => { + beforeEach(() => { + Cypress.on("uncaught:exception", (err) => { + // this error can be safely ignored + if (err.message.includes("ResizeObserver loop limit exceeded")) { + return false; + } + }); + }); + + it("should execute correct query, when text cursor is on query which has no semicolon", () => { + cy.visit(baseUrl); + cy.typeQuery("select * from long_sequence(1)").F9(); + cy.getGridRow(0).should("contain", "1"); + cy.clearEditor(); + cy.typeQuery(`select * from long_sequence(2);{leftArrow}`).F9(); + cy.wait(100).getGridRow(1).should("contain", "2"); + }); + + it("should execute correct query, when multiple queries exist", () => { + cy.visit(baseUrl); + cy.typeQuery( + "long_sequence(10) where x = 3;\n\nlong_sequence(5) limit 2;{upArrow}{upArrow}{end}{leftArrow}" + ).F9(); + cy.getGridRow(0).should("contain", "3"); + cy.clearEditor(); + cy.typeQuery( + "long_sequence(10) where x = 3;\n\nlong_sequence(5) limit 2{upArrow}{upArrow}{end}{leftArrow}" + ).F9(); + cy.getGridRow(0).should("contain", "3"); + }); +}); diff --git a/packages/browser-tests/cypress/support/commands.js b/packages/browser-tests/cypress/support/commands.js index 1b2a136ac..4b052804f 100644 --- a/packages/browser-tests/cypress/support/commands.js +++ b/packages/browser-tests/cypress/support/commands.js @@ -9,13 +9,7 @@ Cypress.Commands.add("getGridViewport", () => cy.get(".qg-viewport")); Cypress.Commands.add("getGridRow", (n) => cy.get(".qg-r").eq(n)); Cypress.Commands.add("typeQuery", (query) => - cy - .get(".monaco-editor") - .first() - .click() - .focused() - .type("{ctrl}a") - .type(`${query}`) + cy.get(".monaco-editor").first().click().focused().type("{ctrl}a").type(query) ); Cypress.Commands.add("runQuery", (query) => { @@ -43,3 +37,9 @@ Cypress.Commands.add("getAutocomplete", () => ); Cypress.Commands.add("getErrorMarker", () => cy.get(".squiggly-error")); + +Cypress.Commands.add("F9", () => + cy.getEditor().trigger("keydown", { + keyCode: 120, + }) +); diff --git a/packages/browser-tests/snapshots.js b/packages/browser-tests/snapshots.js index c3aac4751..6f25782c5 100644 --- a/packages/browser-tests/snapshots.js +++ b/packages/browser-tests/snapshots.js @@ -1,5 +1,5 @@ module.exports = { - "__version": "9.5.1", + "__version": "9.6.1", "questdb grid": { "works": { "1": "
\n
\n
1
\n
\n
\n
2
\n
\n
\n
3
\n
\n
\n
4
\n
\n
\n
5
\n
\n
\n
6
\n
\n
\n
7
\n
\n
\n
8
\n
\n
\n
9
\n
\n
\n
10
\n
\n
\n
11
\n
\n
\n
12
\n
\n
\n
13
\n
\n
\n
14
\n
\n
\n
15
\n
\n
\n
16
\n
\n
\n
17
\n
\n
\n
18
\n
\n
\n
19
\n
\n
\n
20
\n
\n
\n
21
\n
\n
\n
22
\n
\n
\n
23
\n
\n
\n
24
\n
\n
\n
25
\n
\n
\n
26
\n
\n
\n
27
\n
\n
\n
28
\n
\n
\n
29
\n
\n
\n
30
\n
\n
\n
31
\n
\n
\n
32
\n
\n
\n
33
\n
\n
\n
34
\n
\n
\n
35
\n
\n
\n
36
\n
\n
\n
37
\n
\n
\n
38
\n
\n
\n
39
\n
\n
\n
40
\n
\n
\n
41
\n
\n
\n
42
\n
\n
\n
43
\n
\n
\n
44
\n
\n
\n
45
\n
\n
\n
46
\n
\n
\n
47
\n
\n
\n
48
\n
\n
\n
49
\n
\n
\n
50
\n
\n
\n
51
\n
\n
\n
52
\n
\n
\n
53
\n
\n
\n
54
\n
\n
\n
55
\n
\n
\n
56
\n
\n
\n
57
\n
\n
\n
58
\n
\n
\n
59
\n
\n
\n
60
\n
\n
\n
61
\n
\n
\n
62
\n
\n
\n
63
\n
\n
\n
64
\n
\n
\n
65
\n
\n
\n
66
\n
\n
\n
67
\n
\n
\n
68
\n
\n
\n
69
\n
\n
\n
70
\n
\n
\n
71
\n
\n
\n
72
\n
\n
\n
73
\n
\n
\n
74
\n
\n
\n
75
\n
\n
\n
76
\n
\n
\n
77
\n
\n
\n
78
\n
\n
\n
79
\n
\n
\n
80
\n
\n
\n
81
\n
\n
\n
82
\n
\n
\n
83
\n
\n
\n
84
\n
\n
\n
85
\n
\n
\n
86
\n
\n
\n
87
\n
\n
\n
88
\n
\n
\n
89
\n
\n
\n
90
\n
\n
\n
91
\n
\n
\n
92
\n
\n
\n
93
\n
\n
\n
94
\n
\n
\n
95
\n
\n
\n
96
\n
\n
\n
97
\n
\n
\n
98
\n
\n
\n
99
\n
\n
\n
100
\n
\n
\n
101
\n
\n
\n
102
\n
\n
\n
103
\n
\n
\n
104
\n
\n
\n
105
\n
\n
\n
106
\n
\n
\n
107
\n
\n
\n
108
\n
\n
\n
109
\n
\n
\n
110
\n
\n
\n
111
\n
\n
\n
112
\n
\n
\n
113
\n
\n
\n
114
\n
\n
\n
115
\n
\n
\n
116
\n
\n
\n
117
\n
\n
\n
118
\n
\n
\n
119
\n
\n
\n
120
\n
\n
\n
121
\n
\n
\n
122
\n
\n
\n
123
\n
\n
\n
124
\n
\n
\n
125
\n
\n
\n
126
\n
\n
\n
127
\n
\n
\n
128
\n
\n
",