wiki-plugin-roster
Version:
Federated Wiki - Roster Plugin
127 lines (123 loc) • 3.63 kB
JavaScript
;
(function () {
// build time tests for roster plugin
// see http://mochajs.org/
var expect, includes, parse, wiki;
var _require = require('../client/roster');
parse = _require.parse;
includes = _require.includes;
expect = require('expect.js');
// mock wiki.site(site).flag()
wiki = {};
wiki.site = function (site) {
return {
flag: function flag() {
return "//".concat(site, "/favicon.png");
}
};
};
// and make wiki global
global.wiki = wiki;
describe('roster plugin', function () {
describe('site markup', function () {
it('makes image', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/<img class="remote" src="\/\/fed.wiki.org\/favicon.png"/);
});
it('has title', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/title="fed.wiki.org"/);
});
it('has site data', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/data-site="fed.wiki.org"/);
});
return it('has slug data', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/data-slug="welcome-visitors"/);
});
});
describe('end of line markup', function () {
it('has anchor', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/<a class='loadsites' href= "\/#"/);
});
it('has title', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/title="add these 1 sites\nto neighborhood"/);
});
return it('has » at end of line', function () {
var result;
result = parse(null, {
text: 'fed.wiki.org'
});
return expect(result).to.match(/>»<\/a><br>/);
});
});
describe('category formatting', function () {
return it('end of line', function () {
var result;
result = parse(null, {
text: 'students'
});
return expect(result).to.match(/students *<br>/);
});
});
return describe('category access', function () {
var stub;
stub = {
addClass: function addClass(c) {
return this.c = c;
},
get: function get(n) {
return this;
}
};
it('announces roster-source', function () {
parse(stub, {
text: "wiki.org"
});
return expect(stub.c).to.be('roster-source');
});
it('has category all', function () {
parse(stub, {
text: "wiki.org\nfoo.wiki.org"
});
return expect(stub.getRoster()).to.eql({
all: ['wiki.org', 'foo.wiki.org']
});
});
it('allows prefix category name', function () {
parse(stub, {
text: "ward\nwiki.org\nfoo.wiki.org"
});
return expect(stub.getRoster().ward).to.eql(['wiki.org', 'foo.wiki.org']);
});
return it('allows sufix category name', function () {
parse(stub, {
text: "wiki.org\nfoo.wiki.org\nward"
});
return expect(stub.getRoster().ward).to.eql(['wiki.org', 'foo.wiki.org']);
});
});
});
}).call(void 0);
//# sourceMappingURL=test.js.map