* Rename desktop e2e scripts and tags for consistency * Show local command in main test step * Restore 'e2e' prefix to clarify GitHub UI * Add web script to contributor guide
78 lines
2.5 KiB
TypeScript
78 lines
2.5 KiB
TypeScript
import { expect, test } from '@e2e/playwright/zoo-test'
|
|
import { join } from 'path'
|
|
import * as fsp from 'fs/promises'
|
|
|
|
test.describe('Electron app header tests', () => {
|
|
test(
|
|
'Open Command Palette button has correct shortcut',
|
|
{ tag: '@desktop' },
|
|
async ({ page }, testInfo) => {
|
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
|
|
|
// No space before the shortcut since it checks textContent.
|
|
let text
|
|
switch (process.platform) {
|
|
case 'darwin':
|
|
text = 'Commands⌘K'
|
|
break
|
|
case 'win32':
|
|
text = 'CommandsCtrl+K'
|
|
break
|
|
default: // 'linux' etc.
|
|
text = 'CommandsCtrl+K'
|
|
break
|
|
}
|
|
const commandsButton = page.getByRole('button', { name: 'Commands' })
|
|
await expect(commandsButton).toBeVisible()
|
|
await expect(commandsButton).toHaveText(text)
|
|
}
|
|
)
|
|
|
|
test(
|
|
'User settings has correct shortcut',
|
|
{ tag: '@desktop' },
|
|
async ({ page, toolbar }, testInfo) => {
|
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
|
|
|
// Open the user sidebar menu.
|
|
await toolbar.userSidebarButton.click()
|
|
|
|
// No space after "User settings" since it's textContent.
|
|
const text =
|
|
process.platform === 'darwin' ? 'User settings⌘,' : 'User settingsCtrl,'
|
|
const userSettingsButton = page.getByTestId('user-settings')
|
|
await expect(userSettingsButton).toBeVisible()
|
|
await expect(userSettingsButton).toHaveText(text)
|
|
}
|
|
)
|
|
|
|
test('Share button is disabled when imports are present', async ({
|
|
page,
|
|
context,
|
|
homePage,
|
|
toolbar,
|
|
}) => {
|
|
const projectName = 'share-disabled-for-imports'
|
|
await context.folderSetupFn(async (dir) => {
|
|
const testDir = join(dir, projectName)
|
|
await fsp.mkdir(testDir, { recursive: true })
|
|
|
|
await fsp.writeFile(join(testDir, 'deps.kcl'), 'export x = 42')
|
|
await fsp.writeFile(join(testDir, 'main.kcl'), 'import x from "deps.kcl"')
|
|
})
|
|
|
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
|
await homePage.openProject(projectName)
|
|
const shareButton = page.getByTestId('share-button')
|
|
|
|
// Open deps.kcl (which has no imports) and verify share button is enabled
|
|
await toolbar.fileTreeBtn.click()
|
|
await toolbar.openFile('deps.kcl')
|
|
await expect(shareButton).not.toBeDisabled()
|
|
|
|
// Open main.kcl (which has an import) and verify share button is disabled
|
|
await toolbar.openFile('main.kcl')
|
|
await expect(shareButton).toBeDisabled()
|
|
})
|
|
})
|