Skip to content

Commit 7d4011d

Browse files
committed
ci: adding testing to pr
1 parent 8d166f4 commit 7d4011d

File tree

5 files changed

+61
-62
lines changed

5 files changed

+61
-62
lines changed

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ updates:
44
directory: '/'
55
schedule:
66
interval: 'weekly'
7+
- package-ecosystem: 'github-actions'
8+
directory: '/'
9+
schedule:
10+
interval: 'weekly'

.github/workflows/pr.yaml

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,27 @@
11
on:
2+
push:
3+
branches:
4+
- main
25
pull_request:
36
branches:
47
- main
58
concurrency:
69
group: 'pr-${{ github.event.pull_request.number }}'
710
cancel-in-progress: true
811
jobs:
9-
test-vscode-e2e:
12+
test-vscode:
1013
env:
1114
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
12-
runs-on: macos-latest
15+
runs-on: ubuntu-latest
1316
steps:
14-
- uses: actions/checkout@v3
15-
- uses: actions/setup-python@v4
16-
with:
17-
python-version: '3.12'
18-
- name: Install Python dependencies
19-
run: make install-dev
20-
- uses: actions/setup-node@v3
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-node@v4
2119
with:
2220
node-version: '20'
23-
- uses: pnpm/action-setup@v2
21+
- uses: pnpm/action-setup@v4
2422
with:
2523
version: latest
2624
- name: Install dependencies
2725
run: pnpm install
2826
- name: Run CI
2927
run: pnpm run ci
30-
- name: Fetch VSCode
31-
working-directory: vscode/extension
32-
run: pnpm run fetch-vscode
33-
- name: Run E2E tests
34-
working-directory: vscode/extension
35-
run: pnpm run test:e2e --max-failures 1
36-
- name: Upload test videos
37-
uses: actions/upload-artifact@v4
38-
with:
39-
name: test-videos
40-
path: vscode/extension/test-videos/

vscode/extension/.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ out
55
*.vsix
66
LICENSE
77
src_react
8-
!src_react/.gitkeep
9-
test-videos
8+
!src_react/.gitkeep

vscode/extension/tests/hints.spec.ts

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,43 @@ import os from 'os'
55
import { startVSCode, SUSHI_SOURCE_PATH } from './utils'
66

77
test('Model type hinting', async () => {
8-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'vscode-test-sushi-'))
9-
await fs.copy(SUSHI_SOURCE_PATH, tempDir)
10-
11-
try {
12-
const { window, close } = await startVSCode(tempDir)
13-
14-
// Wait for the models folder to be visible
15-
await window.waitForSelector('text=models')
16-
17-
// Click on the models folder
18-
await window
19-
.getByRole('treeitem', { name: 'models', exact: true })
20-
.locator('a')
21-
.click()
22-
23-
// Open the customers_revenue_by_day model
24-
await window
25-
.getByRole('treeitem', {
26-
name: 'customer_revenue_by_day.sql',
27-
exact: true,
28-
})
29-
.locator('a')
30-
.click()
31-
32-
await window.waitForSelector('text=grain')
33-
await window.waitForSelector('text=Loaded SQLMesh Context')
34-
35-
// Wait a moment for hints to appear
36-
await window.waitForTimeout(500)
37-
38-
// Check if the hint is visible
39-
expect(await window.locator('text="country code"::INT').count()).toBe(1)
40-
41-
await close()
42-
} finally {
43-
await fs.remove(tempDir)
44-
}
8+
const tempDir = await fs.mkdtemp(
9+
path.join(os.tmpdir(), 'vscode-test-sushi-'),
10+
)
11+
await fs.copy(SUSHI_SOURCE_PATH, tempDir)
12+
13+
try {
14+
const { window, close } = await startVSCode(tempDir)
15+
16+
// Wait for the models folder to be visible
17+
await window.waitForSelector('text=models')
18+
19+
// Click on the models folder
20+
await window
21+
.getByRole('treeitem', { name: 'models', exact: true })
22+
.locator('a')
23+
.click()
24+
25+
// Open the customers_revenue_by_day model
26+
await window
27+
.getByRole('treeitem', {
28+
name: 'customer_revenue_by_day.sql',
29+
exact: true,
30+
})
31+
.locator('a')
32+
.click()
33+
34+
await window.waitForSelector('text=grain')
35+
await window.waitForSelector('text=Loaded SQLMesh Context')
36+
37+
// Wait a moment for hints to appear
38+
await window.waitForTimeout(500)
39+
40+
// Check if the hint is visible
41+
expect(await window.locator('text="country code"::INT').count()).toBe(1)
42+
43+
await close()
44+
} finally {
45+
await fs.remove(tempDir)
46+
}
4547
})

vscode/extension/tests/utils.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,15 @@ export const startVSCode = async (
3333
const userDataDir = await fs.mkdtemp(
3434
path.join(os.tmpdir(), 'vscode-user-data-'),
3535
)
36-
const ciArgs = process.env.CI ? ['--window-position=-10000,0'] : []
36+
const ciArgs = process.env.CI
37+
? [
38+
'--disable-gpu',
39+
'--headless',
40+
'--no-sandbox',
41+
'--disable-dev-shm-usage',
42+
'--window-position=-10000,0',
43+
]
44+
: []
3745
const args = [
3846
...ciArgs,
3947
`--extensionDevelopmentPath=${EXT_PATH}`,
@@ -46,7 +54,6 @@ export const startVSCode = async (
4654
const electronApp = await electron.launch({
4755
executablePath: VS_CODE_EXE,
4856
args,
49-
recordVideo: { dir: 'test-videos' },
5057
})
5158
const window = await electronApp.firstWindow()
5259
await window.waitForLoadState('domcontentloaded')

0 commit comments

Comments
 (0)