Add test to ensure the state saved when project folders changed.

This commit is contained in:
Vladimir Timofeev
2017-01-07 10:59:22 +03:00
parent a21841e5f3
commit bc77a79e86

View File

@@ -41,6 +41,39 @@ describe('AtomApplication', function () {
electron.app.quit = originalAppQuit
})
describe('project paths', function () {
it('sync application state on changes', async function () {
const dirA = makeTempDir()
const dirB = makeTempDir()
const atomApplication = buildAtomApplication()
const window = atomApplication.launch(parseCommandLine([]))
await focusWindow(window)
const addProjectPathFn = function (dir) {
return 'function (sendBackToMainProcess) { atom.project.addPath("' + dir + '"); sendBackToMainProcess(null); }'
}
const removeProjectPathFn = function (dir) {
return 'function (sendBackToMainProcess) { atom.project.removePath("' + dir + '"); sendBackToMainProcess(null); }'
}
await evalInWebContents(window.browserWindow.webContents, addProjectPathFn(dirA))
const appState1 = JSON.parse(fs.readFileSync(path.join(process.env.ATOM_HOME, 'storage', 'application.json'), 'utf8'))
assert.deepEqual(appState1[0].initialPaths, [dirA])
await evalInWebContents(window.browserWindow.webContents, addProjectPathFn(dirB))
const appState2 = JSON.parse(fs.readFileSync(path.join(process.env.ATOM_HOME, 'storage', 'application.json'), 'utf8'))
assert.deepEqual(appState2[0].initialPaths, [dirA, dirB])
await evalInWebContents(window.browserWindow.webContents, removeProjectPathFn(dirA))
const appState3 = JSON.parse(fs.readFileSync(path.join(process.env.ATOM_HOME, 'storage', 'application.json'), 'utf8'))
assert.deepEqual(appState3[0].initialPaths, [dirB])
})
})
describe('launch', function () {
it('can open to a specific line number of a file', async function () {
const filePath = path.join(makeTempDir(), 'new-file')