mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-27 20:03:45 +03:00
Add basic tests on Mocha/Chai/Sinon
This commit is contained in:
parent
da9e292cad
commit
3d68ae2529
|
@ -4,13 +4,17 @@
|
|||
"description": "Development tools for chromium extension",
|
||||
"scripts": {
|
||||
"lint": "eslint ./src/**/*.js --ignore-pattern vendor",
|
||||
"gulp": "gulp"
|
||||
"gulp": "gulp",
|
||||
"test": "mocha --recursive ./src/**/test/*"
|
||||
},
|
||||
"author": "Ilya Ig. Petrov",
|
||||
"license": "GPLv3",
|
||||
"devDependencies": {
|
||||
"chai": "^3.5.0",
|
||||
"eslint": "^3.15.0",
|
||||
"eslint-config-google": "^0.7.1"
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"mocha": "^3.3.0",
|
||||
"sinon-chrome": "^2.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"del": "^2.2.2",
|
||||
|
|
|
@ -125,16 +125,16 @@
|
|||
|
||||
key = prefix + key;
|
||||
if (value === null) {
|
||||
return localStorage.removeItem(key);
|
||||
return window.localStorage.removeItem(key);
|
||||
}
|
||||
if (value === undefined) {
|
||||
const item = localStorage.getItem(key);
|
||||
const item = window.localStorage.getItem(key);
|
||||
return item && JSON.parse(item);
|
||||
}
|
||||
if (value instanceof Date) {
|
||||
throw new TypeError('Converting Date format to JSON is not supported.');
|
||||
}
|
||||
localStorage.setItem(key, JSON.stringify(value));
|
||||
window.localStorage.setItem(key, JSON.stringify(value));
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -104,6 +104,9 @@
|
|||
|
||||
const getCurrentConfigs = function getCurrentConfigs() {
|
||||
|
||||
return kitchenState(modsKey);
|
||||
|
||||
// In case of migration.
|
||||
const [err, mods, ...warns] = createPacModifiers( kitchenState(modsKey) );
|
||||
if (err) {
|
||||
throw err;
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
'use strict';
|
||||
|
||||
const Chrome = require('sinon-chrome');
|
||||
const Chai = require('chai');
|
||||
const Mocha = require('mocha');
|
||||
|
||||
const storageMock = function storageMock() {
|
||||
|
||||
let storage = {};
|
||||
|
||||
return new Proxy({
|
||||
setItem: function(key, value) {
|
||||
|
||||
storage[key] = value || '';
|
||||
|
||||
},
|
||||
getItem: function(key) {
|
||||
|
||||
return key in storage ? storage[key] : null;
|
||||
|
||||
},
|
||||
removeItem: function(key) {
|
||||
|
||||
delete storage[key];
|
||||
|
||||
},
|
||||
get length() {
|
||||
|
||||
return Object.keys(storage).length;
|
||||
|
||||
},
|
||||
key: function(i) {
|
||||
|
||||
throw new Error('Not implemented!');
|
||||
|
||||
},
|
||||
clear: function() {
|
||||
|
||||
storage = {};
|
||||
|
||||
},
|
||||
}, {
|
||||
get: function(target, name) {
|
||||
|
||||
if (name in target) {
|
||||
return target[name];
|
||||
}
|
||||
return target.getItem(name);
|
||||
|
||||
},
|
||||
set: function(target, prop, value) {
|
||||
|
||||
if (prop in target) {
|
||||
target[prop] = value;
|
||||
return;
|
||||
}
|
||||
return target.setItem(prop, value);
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
const myRequire = (path) => {
|
||||
|
||||
delete require.cache[require.resolve(path)];
|
||||
return require(path);
|
||||
|
||||
};
|
||||
|
||||
Mocha.describe('window.apis.pacKitchen', function () {
|
||||
|
||||
|
||||
Mocha.beforeEach(function() {
|
||||
|
||||
global.chrome = Chrome;
|
||||
global.window = {
|
||||
chrome: Chrome,
|
||||
localStorage: new storageMock(),
|
||||
};
|
||||
myRequire('../00-init-apis.js');
|
||||
|
||||
});
|
||||
|
||||
Mocha.it('is evaluated and defined', function () {
|
||||
|
||||
myRequire('../35-pac-kitchen-api.js');
|
||||
Chai.assert.ok(window.apis.pacKitchen, 'exports to globals');
|
||||
|
||||
});
|
||||
|
||||
Mocha.afterEach(function() {
|
||||
|
||||
delete global.window;
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
'use strict';
|
||||
|
||||
const Chai = require('chai');
|
||||
const Mocha = require('mocha');
|
||||
|
||||
Mocha.describe('window.utils', function () {
|
||||
|
||||
const initApis = '../00-init-apis.js';
|
||||
|
||||
Mocha.beforeEach(function() {
|
||||
|
||||
delete require.cache[require.resolve(initApis)];
|
||||
global.window = {};
|
||||
|
||||
});
|
||||
|
||||
Mocha.it('exports as global', function () {
|
||||
|
||||
console.log('1',window);
|
||||
require(initApis);
|
||||
console.log('2',window);
|
||||
Chai.assert.ok(window.utils, 'exported to globals');
|
||||
Chai.assert.isNotOk(window.apis.version.ifMini, 'is not MINI version');
|
||||
|
||||
});
|
||||
|
||||
Mocha.afterEach(function() {
|
||||
|
||||
delete global.window;
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user