123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- const os = require('os')
- const path = require('path')
- const p = require('playwright')
- const electron = p._electron
- const { expect } = require('@playwright/test')
- async function openAtom(profilePath, videoName) {
- const env = process.env
- env.ATOM_HOME = path.join("tmp", profilePath)
- const config = {
- args: ["--no-sandbox", "."],
- cwd: ".",
- env: env,
- timeout: 50000
- }
- if(env.BINARY_NAME) {
- config.executablePath = env.BINARY_NAME
- config.args = ["--no-sandbox"]
- }
- if(process.env.CI) {
- config.recordVideo = {
- dir: path.join('tests', 'videos', videoName)
- }
- }
- const app = await electron.launch(config)
- const page = await app.firstWindow()
- await expect(page.locator('.tab-bar').first()).toBeVisible()
- return {app, page}
- }
- async function runCommand({page}, command) {
- if(os.platform() === 'darwin') {
- await page.locator('atom-workspace').press('Meta+Shift+p')
- } else {
- await page.locator('atom-workspace').press('Control+Shift+p')
- }
- await expect(page.locator('atom-panel.modal:visible')).toBeVisible()
- const palette = page.locator('.command-palette atom-text-editor.is-focused')
- await palette.type(command)
- await page.locator('.selected div', { hasText: command }).first().click()
- await expect(page.locator('.modal:visible')).toBeHidden()
- }
- async function typeInEditor({page}, locator, text) {
- const editor = page.locator(`${locator} atom-text-editor.is-focused`)
- await expect(editor).toBeVisible()
- await editor.type(text)
- }
- module.exports = {
- openAtom,
- runCommand,
- typeInEditor
- }
|