Franknoirot/fix file deletion (#3569)
* Don't chop off file name from file path * Add a test to confirm file deletion works (as long as you have a main.kcl) * Add TODO test for when main.kcl doesn't exist * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * Make the bad prompt test generate a new prompt each run --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> Co-authored-by: Jonathan Tran <jonnytran@gmail.com> Co-authored-by: 49fl <ircsurfer33@gmail.com>
This commit is contained in:
@ -1682,6 +1682,78 @@ test.describe('Renaming in the file tree', () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test.describe('Deleting files from the file pane', () => {
|
||||||
|
test(
|
||||||
|
`when main.kcl exists, navigate to main.kcl`,
|
||||||
|
{ tag: '@electron' },
|
||||||
|
async ({ browserName }, testInfo) => {
|
||||||
|
test.skip(
|
||||||
|
process.platform === 'win32',
|
||||||
|
'TODO: remove this skip https://github.com/KittyCAD/modeling-app/issues/3557'
|
||||||
|
)
|
||||||
|
const { electronApp, page } = await setupElectron({
|
||||||
|
testInfo,
|
||||||
|
folderSetupFn: async (dir) => {
|
||||||
|
await fsp.mkdir(`${dir}/testProject`, { recursive: true })
|
||||||
|
await fsp.copyFile(
|
||||||
|
'src/wasm-lib/tests/executor/inputs/cylinder.kcl',
|
||||||
|
`${dir}/testProject/main.kcl`
|
||||||
|
)
|
||||||
|
await fsp.copyFile(
|
||||||
|
'src/wasm-lib/tests/executor/inputs/basic_fillet_cube_end.kcl',
|
||||||
|
`${dir}/testProject/fileToDelete.kcl`
|
||||||
|
)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
const u = await getUtils(page)
|
||||||
|
await page.setViewportSize({ width: 1200, height: 500 })
|
||||||
|
page.on('console', console.log)
|
||||||
|
|
||||||
|
// Constants and locators
|
||||||
|
const projectCard = page.getByText('testProject')
|
||||||
|
const projectMenuButton = page.getByTestId('project-sidebar-toggle')
|
||||||
|
const fileToDelete = page
|
||||||
|
.getByRole('listitem')
|
||||||
|
.filter({ has: page.getByRole('button', { name: 'fileToDelete.kcl' }) })
|
||||||
|
const deleteMenuItem = page.getByRole('button', { name: 'Delete' })
|
||||||
|
const deleteConfirmation = page.getByTestId('delete-confirmation')
|
||||||
|
|
||||||
|
await test.step('Open project and navigate to fileToDelete.kcl', async () => {
|
||||||
|
await projectCard.click()
|
||||||
|
await u.waitForPageLoad()
|
||||||
|
await u.openFilePanel()
|
||||||
|
|
||||||
|
await fileToDelete.click()
|
||||||
|
await u.waitForPageLoad()
|
||||||
|
await u.openKclCodePanel()
|
||||||
|
await expect(u.codeLocator).toContainText('getOppositeEdge(thing)')
|
||||||
|
await u.closeKclCodePanel()
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Delete fileToDelete.kcl', async () => {
|
||||||
|
await fileToDelete.click({ button: 'right' })
|
||||||
|
await expect(deleteMenuItem).toBeVisible()
|
||||||
|
await deleteMenuItem.click()
|
||||||
|
await expect(deleteConfirmation).toBeVisible()
|
||||||
|
await deleteConfirmation.click()
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Check deletion and navigation', async () => {
|
||||||
|
await u.waitForPageLoad()
|
||||||
|
await expect(fileToDelete).not.toBeVisible()
|
||||||
|
await u.closeFilePanel()
|
||||||
|
await u.openKclCodePanel()
|
||||||
|
await expect(u.codeLocator).toContainText('circle(')
|
||||||
|
await expect(projectMenuButton).toContainText('main.kcl')
|
||||||
|
})
|
||||||
|
|
||||||
|
await electronApp.close()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
test.fixme('TODO - when main.kcl does not exist', async () => {})
|
||||||
|
})
|
||||||
|
|
||||||
test(
|
test(
|
||||||
'Original project name persist after onboarding',
|
'Original project name persist after onboarding',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
|
Reference in New Issue
Block a user