-
Notifications
You must be signed in to change notification settings - Fork 29
/
completion-items.spec.ts
54 lines (43 loc) · 1.94 KB
/
completion-items.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { test, expect } from '@playwright/test';
import { createMonaKustoModel, MonaKustoModel, loadPageAndWait } from './testkit';
test.describe('completion items', () => {
let model: MonaKustoModel;
test.beforeEach(async ({ page }) => {
await loadPageAndWait(page);
model = createMonaKustoModel(page);
const initialValue = 'StormEvents';
const editor = model.editor().locator;
await editor.focus();
await editor.fill(initialValue);
await model.intellisense().wait();
await page.keyboard.press('Enter');
});
test('triggered on "("', async ({ page }) => {
await page.keyboard.type('where StartTime > ago(');
await model.intellisense().wait();
const option = model.intellisense().option(0);
await expect(option.locator).toHaveText('1d');
});
test('exclude parameters on matching results', async ({ page }) => {
await page.keyboard.type('where StartTime > ago');
await model.intellisense().wait();
const options = model.intellisense().options();
await expect(options.locator).toHaveCount(2);
});
test.describe('ordered by relevance', () => {
test('verify alphabetical order of functions', async ({ page }) => {
await page.keyboard.type('summarize coun');
await model.intellisense().wait();
const option1 = model.intellisense().option(0);
await expect(option1.locator).toContainText('count()');
const option2 = model.intellisense().option(1);
await expect(option2.locator).toContainText('count_distinct(');
});
test('ordered by columns first', async ({ page }) => {
await page.keyboard.type('where t');
await model.intellisense().wait();
await page.keyboard.type('ime');
await expect(model.intellisense().option(0).locator).toHaveText('StartTime');
});
});
});