Browse Source

test(e2e): cleanup stored data in between e2e test runs

feat/auto-update
jamaljsr 5 years ago
parent
commit
2206905e58
  1. 3
      TODO.md
  2. 7
      e2e/App.e2e.ts
  3. 7
      e2e/Home.e2e.ts
  4. 5
      e2e/Network.e2e.ts
  5. 14
      e2e/helpers/index.ts
  6. 6
      package.json
  7. 7
      yarn.lock

3
TODO.md

@ -2,8 +2,9 @@
Small Stuff
- save network state to disk
- refactor func names in files module
- refactor networks.add into a util func
- refactor to use fs-extra instead of fs
- move "docker-compose.yml" string into a constants file
- build images if they don't exist
- update app icon

7
e2e/App.e2e.ts

@ -1,6 +1,9 @@
import { assertNoConsoleErrors, getPageTitle, pageUrl } from './helpers';
import { assertNoConsoleErrors, cleanup, getPageTitle, pageUrl } from './helpers';
fixture`App`.page(pageUrl).afterEach(assertNoConsoleErrors);
fixture`App`
.page(pageUrl)
.afterEach(assertNoConsoleErrors)
.afterEach(cleanup);
test('should have correct title', async t => {
await t.expect(getPageTitle()).eql('Polar');

7
e2e/Home.e2e.ts

@ -1,7 +1,10 @@
import { assertNoConsoleErrors, getPageUrl, pageUrl } from './helpers';
import { assertNoConsoleErrors, cleanup, getPageUrl, pageUrl } from './helpers';
import { Home } from './pages';
fixture`Home`.page(pageUrl).afterEach(assertNoConsoleErrors);
fixture`Home`
.page(pageUrl)
.afterEach(assertNoConsoleErrors)
.afterEach(cleanup);
test('should be on the route /', async t => {
await t.expect(getPageUrl()).match(/.*#\/$/);

5
e2e/Network.e2e.ts

@ -1,10 +1,11 @@
import { assertNoConsoleErrors, getPageUrl, pageUrl } from './helpers';
import { assertNoConsoleErrors, cleanup, getPageUrl, pageUrl } from './helpers';
import { App, NetworkView, NewNetwork } from './pages';
fixture`Network`
.page(pageUrl)
.beforeEach(App.clickNewNetworkBtn)
.afterEach(assertNoConsoleErrors);
.afterEach(assertNoConsoleErrors)
.afterEach(cleanup);
test('should be on the route /network', async t => {
await t.expect(getPageUrl()).match(/.*#\/network$/);

14
e2e/helpers/index.ts

@ -1,3 +1,6 @@
import { remove } from 'fs-extra';
import { join } from 'path';
import { homedir, platform } from 'os';
import { ClientFunction } from 'testcafe';
export const pageUrl = '../build/index.html';
@ -9,3 +12,14 @@ export const assertNoConsoleErrors = async (t: TestController) => {
const { error } = await t.getBrowserConsoleMessages();
await t.expect(error).eql([]);
};
const appDataPaths = {
win32: join(homedir(), 'AppData', 'Roaming'),
darwin: join(homedir(), 'Library', 'Application Support'),
linux: join(homedir(), '.config'),
};
export const cleanup = async () => {
const appDataPath = process.env['APPDATA'] || appDataPaths[platform()];
const dataPath = join(appDataPath, 'Electron', 'data');
await remove(dataPath);
};

6
package.json

@ -39,8 +39,6 @@
"tsc": "tsc --noEmit"
},
"dependencies": {
"@types/dockerode": "^2.5.20",
"@types/js-yaml": "^3.12.1",
"docker-compose": "^0.22.2",
"dockerode": "^2.5.8",
"electron-debug": "^3.0.1",
@ -56,7 +54,10 @@
"@rescripts/rescript-use-babel-config": "^0.0.8",
"@testing-library/jest-dom": "^4.1.0",
"@testing-library/react": "^9.1.3",
"@types/dockerode": "^2.5.20",
"@types/fs-extra": "^8.0.0",
"@types/jest": "24.0.18",
"@types/js-yaml": "^3.12.1",
"@types/node": "12.7.3",
"@types/react": "16.9.2",
"@types/react-dom": "16.9.0",
@ -81,6 +82,7 @@
"eslint-config-prettier": "^6.1.0",
"eslint-plugin-prettier": "^3.1.0",
"eslint-plugin-react": "^7.14.3",
"fs-extra": "^8.1.0",
"history": "^4.9.0",
"husky": "^3.0.4",
"i18next": "^17.0.13",

7
yarn.lock

@ -1646,6 +1646,13 @@
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
"@types/fs-extra@^8.0.0":
version "8.0.0"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.0.0.tgz#d3e2c313ca29f95059f198dd60d1f774642d4b25"
integrity sha512-bCtL5v9zdbQW86yexOlXWTEGvLNqWxMFyi7gQA7Gcthbezr2cPSOb8SkESVKA937QD5cIwOFLDFt0MQoXOEr9Q==
dependencies:
"@types/node" "*"
"@types/glob@^7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"

Loading…
Cancel
Save