mirror of
https://github.com/wassname/talk.git
synced 2026-06-28 22:54:39 +08:00
53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
const expect = require('chai').expect;
|
|
const Domainlist = require('../../../services/domainlist');
|
|
const SettingsService = require('../../../services/settings');
|
|
|
|
describe('services.Domainlist', () => {
|
|
|
|
const domainlists = {
|
|
whitelist: [
|
|
'nytimes.com',
|
|
'wapo.com'
|
|
]
|
|
};
|
|
|
|
let domainlist = new Domainlist();
|
|
const settings = {id: '1', moderation: 'PRE', domainlist: {whitelist: ['nytimes.com', 'wapo.com']}};
|
|
|
|
beforeEach(() => SettingsService.init(settings));
|
|
|
|
describe('#init', () => {
|
|
|
|
before(() => domainlist.upsert(domainlists));
|
|
|
|
it('has entries', () => {
|
|
expect(domainlist.lists.whitelist).to.not.be.empty;
|
|
});
|
|
|
|
});
|
|
|
|
describe('#match', () => {
|
|
|
|
const whiteList = Domainlist.parseList(domainlists['whitelist']);
|
|
|
|
it('does match on an included domain', () => {
|
|
[
|
|
'wapo.com',
|
|
'nytimes.com'
|
|
].forEach((domain) => {
|
|
expect(domainlist.match(whiteList, domain)).to.be.true;
|
|
});
|
|
});
|
|
|
|
it('does not match on a not included domain', () => {
|
|
[
|
|
'badsite.com',
|
|
'www.badsite.com',
|
|
'otherexample.com'
|
|
].forEach((domain) => {
|
|
expect(domainlist.match(whiteList, domain)).to.be.false;
|
|
});
|
|
});
|
|
});
|
|
});
|