Skip to content

Commit 1146ae6

Browse files
committed
test: finishing tests for default themes
1 parent c32b855 commit 1146ae6

File tree

3 files changed

+36
-24
lines changed

3 files changed

+36
-24
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
"start": "electron . --inspect --debug --debug-level=\"silly\" --workspace-path=\"~/arc-dev/workspace\" --settings-file=\"~/arc-dev/dev-settings.json\" --themes-path=\"~/arc-dev/themes\"",
1616
"postinstall": "electron-rebuild && electron-builder install-app-deps",
1717
"prepare": "pika-web && node tasks/prepare-app.js",
18-
"test": "npm run test-main && npm run test-renderer && npm run test-app",
19-
"test-main": "NODE_ENV=test ELECTRON_PATH=node_modules/.bin/electron electron-mocha test/**/*.main.spec.js scripts/packages/**/*.main.spec.js",
20-
"test-renderer": "NODE_ENV=test ELECTRON_PATH='node_modules/.bin/electron' electron-mocha --renderer --require-main 'test/renderer-setup-paths.js' scripts/packages/**/*.renderer.spec.js",
21-
"test-app": "NODE_ENV=test ELECTRON_PATH=node_modules/.bin/electron mocha test/**.app.spec.js --timeout 10000",
18+
"test": "npm run test:main && npm run test:renderer && npm run test:app",
19+
"test:main": "NODE_ENV=test ELECTRON_PATH=node_modules/.bin/electron electron-mocha test/**/*.main.spec.js scripts/packages/**/*.main.spec.js",
20+
"test:renderer": "NODE_ENV=test ELECTRON_PATH='node_modules/.bin/electron' electron-mocha --renderer --require-main 'test/renderer-setup-paths.js' scripts/packages/**/*.renderer.spec.js",
21+
"test:app": "NODE_ENV=test ELECTRON_PATH=node_modules/.bin/electron mocha test/**.app.spec.js --timeout 10000",
2222
"test-win-all": "npm run test-win-main && npm run test-win-renderer && npm run test-win-app",
2323
"test-win-main": "node node_modules/.bin/electron-mocha test/**/*.main.spec.js scripts/packages/**/*.main.spec.js",
2424
"test-win-renderer": "node node_modules/.bin/electron-mocha --renderer scripts/packages/**/*.renderer.spec.js",

scripts/main/defaults/theme-defaults.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ class ThemeDefaults {
180180
*/
181181
async _copyInfoFile() {
182182
const dest = process.env.ARC_THEMES_SETTINGS;
183+
await fs.ensureDir(process.env.ARC_THEMES);
183184
let info = await fs.readJson(this.localThemeInfoFile, { throws: false })
184185
info = info || {};
185186
await fs.writeJson(dest, info);

test/scripts/main/theme-defaults.main.spec.js

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,27 @@ const fs = require('fs-extra');
33
const path = require('path');
44
const { ThemeDefaults } = require('../../../scripts/main/defaults/theme-defaults.js');
55

6-
describe.only('ThemeDefaults', function() {
7-
const themePath = './test/scripts/main/theme';
8-
const basePath = path.join(themePath, '@advanced-rest-client');
6+
const testPaths = require('../../setup-paths');
7+
testPaths.getBasePath();
8+
9+
describe('ThemeDefaults', function() {
10+
const basePath = path.join(process.env.ARC_THEMES, '@advanced-rest-client');
911
const defaultFile = path.join(basePath, 'arc-electron-default-theme', 'arc-electron-default-theme.css');
1012
const defaultPackage = path.join(basePath, 'arc-electron-default-theme', 'package.json');
1113
const anypointFile = path.join(basePath, 'arc-electron-anypoint-theme', 'arc-electron-anypoint-theme.css');
1214
const anypointPackage = path.join(basePath, 'arc-electron-anypoint-theme', 'package.json');
1315
const darkFile = path.join(basePath, 'arc-electron-dark-theme', 'arc-electron-dark-theme.css');
1416
const darkPackage = path.join(basePath, 'arc-electron-dark-theme', 'package.json');
15-
const themeInfo = path.join(themePath, 'themes-info.json');
1617

1718
let instance;
18-
describe('Basics', function() {
19-
before(function() {
20-
instance = new ThemeDefaults();
21-
});
22-
23-
it('Sets themePath property', function() {
24-
assert.typeOf(instance.themePath, 'string');
25-
});
26-
});
2719

2820
describe('prepareEnvironment()', function() {
2921
beforeEach(function() {
3022
instance = new ThemeDefaults();
31-
instance.themePath = themePath;
3223
});
3324

3425
afterEach(function() {
35-
return fs.remove(instance.themePath);
26+
return fs.remove(process.env.ARC_THEMES);
3627
});
3728

3829
async function testContents(themeFile, pkgFile) {
@@ -59,34 +50,54 @@ describe.only('ThemeDefaults', function() {
5950

6051
it('Copies theme info file', async () => {
6152
await instance.prepareEnvironment();
62-
const exists = await fs.exists(themeInfo);
53+
const exists = await fs.exists(process.env.ARC_THEMES_SETTINGS);
6354
assert.isTrue(exists, 'File exists');
6455
});
6556
});
6657

6758
describe('Updating preinstalled theme files', () => {
6859
beforeEach(function() {
6960
instance = new ThemeDefaults();
70-
instance.themePath = themePath;
7161
});
7262

7363
afterEach(function() {
74-
return fs.remove(instance.themePath);
64+
return fs.remove(process.env.ARC_THEMES);
7565
});
7666

7767
async function installDummy(version) {
78-
version = version || '1.0.0';
68+
version = version || '0.0.0';
7969
await fs.outputFile(defaultFile, 'not-a-theme-file');
8070
await fs.writeJson(defaultPackage, {
8171
version
8272
});
8373
}
8474

75+
async function installDb() {
76+
const db = await fs.readJson(
77+
path.join(__dirname, '..', '..', '..', 'appresources', 'themes', 'themes-info.json'));
78+
db.themes.forEach((item) => item.version = '0.0.0');
79+
await fs.outputJson(process.env.ARC_THEMES_SETTINGS, db);
80+
}
81+
8582
it('updates pre-installed theme file', async () => {
8683
await installDummy();
8784
await instance.prepareEnvironment();
8885
const contents = await fs.readFile(defaultFile, 'utf8');
89-
assert.notEqual(contents, 'not-a-theme-file');
86+
assert.notEqual(contents, 'not-a-theme-file', 'Theme content has changed');
87+
const pkg = await fs.readJson(defaultPackage);
88+
assert.typeOf(pkg.version, 'string', 'Theme package has a version');
89+
assert.notEqual(pkg.version, '0.0.0', 'Package version is updated');
90+
});
91+
92+
it('updates indo db', async () => {
93+
await installDummy();
94+
await installDb();
95+
await instance.prepareEnvironment();
96+
const db = await fs.readJson(process.env.ARC_THEMES_SETTINGS);
97+
db.themes.forEach((item) => {
98+
assert.typeOf(item.version, 'string', 'Theme has a version');
99+
assert.notEqual(item.version, '0.0.0', 'Theme version is updated');
100+
});
90101
});
91102
});
92103
});

0 commit comments

Comments
 (0)