wikiploy
Version:
User scripts and gadgets deployment for MediaWiki (Wikipedia).
119 lines (112 loc) • 3.08 kB
JavaScript
/* global describe, it */
import { assert } from 'chai';
import DeployConfig from '../src/DeployConfig.js';
describe('DeployConfig', function () {
describe('init', function () {
it('should set src, dst', function () {
let config = {
src: 'test.src.js',
dst: 'User:Nux/test.dst.js',
};
let result = new DeployConfig(config);
console.log(result);
assert.equal(result.src, config.src);
assert.equal(result.dst, config.dst);
// console.log(new DeployConfig({
// src: 'test.js',
// }));
});
it('should default to home', function () {
let config = {
src: 'test.js',
};
let expected = '~/test.js';
let result = new DeployConfig(config);
console.log(result);
assert.equal(result.dst, expected);
});
});
describe('setUser', function () {
it('should set userName', function () {
let config = {
src: 'test.js',
};
let userName = 'Tester';
let expected = 'User:Tester/test.js';
let result = new DeployConfig(config);
result.setUser(userName);
console.log(result);
assert.equal(result.dst, expected);
result = new DeployConfig({
src: 'assets/test.js',
dst: '~/test-jsbot--test.js',
});
result.setUser(userName);
console.log(result);
assert.isTrue(result.dst.indexOf('~') < 0);
});
it('should change user', function () {
let config = {
src: 'test.js',
};
let userName1 = 'Tester1';
let userName2 = 'Tester2';
let expected = 'User:Tester2/test.js';
let result = new DeployConfig(config);
result.setUser(userName1);
console.log(result);
result.setUser(userName2);
console.log(result);
assert.equal(result.dst, expected);
});
it('should keep inner tilde', function () {
let config = {
src: 'test.js',
dst: 'Mediawiki/~test.js',
};
let userName = 'Tester';
let result = new DeployConfig(config);
result.setUser(userName);
assert.equal(result.dst, config.dst);
});
});
describe('summary', function () {
it('should use string', function () {
let expected = 'v1.1';
let config = {
src: 'test.js',
summary: expected,
};
let result = new DeployConfig(config);
console.log(result);
assert.equal(result.summary(), expected);
});
it('should use function', function () {
let expected = 'v1.1: test.js';
let config = {
src: 'test.js',
summary: function() { return `v1.1: ${this.src}`; },
};
let result = new DeployConfig(config);
console.log(result);
assert.equal(result.summary(), expected);
});
it('should default to false', function () {
let config = {
src: 'test.js',
};
let result = new DeployConfig(config);
console.log(result);
assert.equal(result.summary, false);
});
it('empty should be ignored', function () {
let config = {
src: 'test.js',
summary: '',
};
let result = new DeployConfig(config);
console.log(result);
assert.equal(result.summary, false);
});
});
});