|
|
|
|
@ -6,7 +6,9 @@ import type { NamedView } from '@rust/kcl-lib/bindings/NamedView'
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
createProject,
|
|
|
|
|
perProjectsettingsToToml,
|
|
|
|
|
orRunWhenFullSuiteEnabled,
|
|
|
|
|
perProjectSettingsToToml,
|
|
|
|
|
runningOnMac,
|
|
|
|
|
tomlToPerProjectSettings,
|
|
|
|
|
} from '@e2e/playwright/test-utils'
|
|
|
|
|
import { expect, test } from '@e2e/playwright/zoo-test'
|
|
|
|
|
@ -57,11 +59,13 @@ function tomlStringOverWriteNamedViewUuids(toml: string): string {
|
|
|
|
|
settings.settings.app.named_views = remappedNamedViews
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return perProjectsettingsToToml(settings)
|
|
|
|
|
return perProjectSettingsToToml(settings)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test.describe('Named view tests', () => {
|
|
|
|
|
test.skip() // TODO: Jace is working on these
|
|
|
|
|
if (runningOnMac()) {
|
|
|
|
|
test.fixme(orRunWhenFullSuiteEnabled())
|
|
|
|
|
}
|
|
|
|
|
test('Verify project.toml is not created', async ({ page }, testInfo) => {
|
|
|
|
|
// Create project and load it
|
|
|
|
|
const projectName = 'named-views'
|
|
|
|
|
@ -105,6 +109,9 @@ test.describe('Named view tests', () => {
|
|
|
|
|
PROJECT_SETTINGS_FILE_NAME
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const toastMessage = page.getByText('Named view uuid1 created.')
|
|
|
|
|
await expect(toastMessage).toBeInViewport()
|
|
|
|
|
|
|
|
|
|
// Expect project.toml to be generated on disk since a named view was created
|
|
|
|
|
await expect(async () => {
|
|
|
|
|
let exists = await fileExists(tempProjectSettingsFilePath)
|
|
|
|
|
@ -130,7 +137,6 @@ test.describe('Named view tests', () => {
|
|
|
|
|
}, testInfo) => {
|
|
|
|
|
const projectName = 'named-views'
|
|
|
|
|
const myNamedView1 = 'uuid1'
|
|
|
|
|
const myNamedView2 = 'uuid2'
|
|
|
|
|
|
|
|
|
|
// Create project and go into the project
|
|
|
|
|
await createProject({ name: projectName, page })
|
|
|
|
|
@ -142,6 +148,9 @@ test.describe('Named view tests', () => {
|
|
|
|
|
await cmdBar.argumentInput.fill(myNamedView1)
|
|
|
|
|
await cmdBar.progressCmdBar(false)
|
|
|
|
|
|
|
|
|
|
let toastMessage = page.getByText('Named view uuid1 created.')
|
|
|
|
|
await expect(toastMessage).toBeInViewport()
|
|
|
|
|
|
|
|
|
|
// Generate file paths for project.toml
|
|
|
|
|
const projectDirName = testInfo.outputPath('electron-test-projects-dir')
|
|
|
|
|
const tempProjectSettingsFilePath = join(
|
|
|
|
|
@ -170,17 +179,20 @@ test.describe('Named view tests', () => {
|
|
|
|
|
// Delete a named view
|
|
|
|
|
await cmdBar.openCmdBar()
|
|
|
|
|
await cmdBar.chooseCommand('delete named view')
|
|
|
|
|
cmdBar.selectOption({ name: myNamedView2 })
|
|
|
|
|
cmdBar.selectOption({ name: myNamedView1 })
|
|
|
|
|
await cmdBar.progressCmdBar(false)
|
|
|
|
|
|
|
|
|
|
toastMessage = page.getByText('Named view uuid1 removed.')
|
|
|
|
|
await expect(toastMessage).toBeInViewport()
|
|
|
|
|
|
|
|
|
|
await expect(async () => {
|
|
|
|
|
// Read project.toml into memory again since we deleted a named view
|
|
|
|
|
let tomlString = await fsp.readFile(tempProjectSettingsFilePath, 'utf-8')
|
|
|
|
|
// Rewrite the uuids in the named views to match snapshot otherwise they will be randomly generated from rust and break
|
|
|
|
|
tomlString = tomlStringOverWriteNamedViewUuids(tomlString)
|
|
|
|
|
|
|
|
|
|
// // Write the entire tomlString to a snapshot.
|
|
|
|
|
// // There are many key/value pairs to check this is a safer match.
|
|
|
|
|
// Write the entire tomlString to a snapshot.
|
|
|
|
|
// There are many key/value pairs to check this is a safer match.
|
|
|
|
|
expect(tomlString).toMatchSnapshot('verify-named-view-gets-deleted')
|
|
|
|
|
}).toPass()
|
|
|
|
|
})
|
|
|
|
|
@ -202,6 +214,9 @@ test.describe('Named view tests', () => {
|
|
|
|
|
await cmdBar.argumentInput.fill(myNamedView)
|
|
|
|
|
await cmdBar.progressCmdBar(false)
|
|
|
|
|
|
|
|
|
|
let toastMessage = page.getByText('Named view uuid1 created.')
|
|
|
|
|
await expect(toastMessage).toBeInViewport()
|
|
|
|
|
|
|
|
|
|
// Generate file paths for project.toml
|
|
|
|
|
const projectDirName = testInfo.outputPath('electron-test-projects-dir')
|
|
|
|
|
const tempProjectSettingsFilePath = join(
|
|
|
|
|
@ -258,26 +273,19 @@ test.describe('Named view tests', () => {
|
|
|
|
|
await cmdBar.argumentInput.fill(myNamedView1)
|
|
|
|
|
await cmdBar.progressCmdBar(false)
|
|
|
|
|
|
|
|
|
|
await page.waitForTimeout(1000)
|
|
|
|
|
let toastMessage = page.getByText('Named view uuid1 created.')
|
|
|
|
|
await expect(toastMessage).toBeInViewport()
|
|
|
|
|
|
|
|
|
|
const orbitMouseStart = { x: 800, y: 130 }
|
|
|
|
|
const orbitMouseEnd = { x: 0, y: 130 }
|
|
|
|
|
await page.mouse.move(orbitMouseStart.x, orbitMouseStart.y)
|
|
|
|
|
await page.mouse.down({ button: 'middle' })
|
|
|
|
|
await page.mouse.move(orbitMouseEnd.x, orbitMouseEnd.y, {
|
|
|
|
|
steps: 3,
|
|
|
|
|
})
|
|
|
|
|
await page.mouse.up({ button: 'middle' })
|
|
|
|
|
|
|
|
|
|
await page.waitForTimeout(1000)
|
|
|
|
|
await scene.moveCameraTo({ x: 608, y: 0, z: 0 }, { x: 0, y: 0, z: 0 })
|
|
|
|
|
await page.waitForTimeout(2500)
|
|
|
|
|
|
|
|
|
|
await cmdBar.openCmdBar()
|
|
|
|
|
await cmdBar.chooseCommand('create named view')
|
|
|
|
|
await cmdBar.argumentInput.fill(myNamedView2)
|
|
|
|
|
await cmdBar.progressCmdBar(false)
|
|
|
|
|
|
|
|
|
|
// Wait a moment for the project.toml to get written to disk with the new view point
|
|
|
|
|
await page.waitForTimeout(1000)
|
|
|
|
|
toastMessage = page.getByText('Named view uuid2 created.')
|
|
|
|
|
await expect(toastMessage).toBeInViewport()
|
|
|
|
|
|
|
|
|
|
// Generate paths for the project.toml
|
|
|
|
|
const tempProjectSettingsFilePath = join(
|
|
|
|
|
|