mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-10 23:36:14 -05:00
refs: https://github.com/TryGhost/Team/issues/856 refs: https://github.com/TryGhost/Team/issues/756 - The .test.js extension is better than _spec.js as it's more obvious that it's an extension - It also meaans we can use the --extension parameter in mocha, which should result in a better default behaviour for `yarn test` - It also highlights that some of our tests were named incorrectly and were not (and still will not be) run (see https://github.com/TryGhost/Team/issues/856) - Note: even with this change, `yarn test` is throwing errors, I believe because of this issue https://github.com/TryGhost/Team/issues/756
88 lines
3 KiB
JavaScript
88 lines
3 KiB
JavaScript
const should = require('should');
|
|
const errors = require('@tryghost/errors');
|
|
const {partitionMembersBySegment} = require('../../../../core/server/services/mega/mega');
|
|
|
|
describe('MEGA', function () {
|
|
describe('partitionMembersBySegment', function () {
|
|
it('partition with no segments', function () {
|
|
const members = [{
|
|
name: 'Free Rish',
|
|
status: 'free'
|
|
}, {
|
|
name: 'Free Matt',
|
|
status: 'free'
|
|
}, {
|
|
name: 'Paid Daniel',
|
|
status: 'paid'
|
|
}];
|
|
const segments = [];
|
|
|
|
const partitions = partitionMembersBySegment(members, segments);
|
|
|
|
partitions.unsegmented.length.should.equal(3);
|
|
partitions.unsegmented[0].name.should.equal('Free Rish');
|
|
});
|
|
|
|
it('partition members with single segment', function () {
|
|
const members = [{
|
|
name: 'Free Rish',
|
|
status: 'free'
|
|
}, {
|
|
name: 'Free Matt',
|
|
status: 'free'
|
|
}, {
|
|
name: 'Paid Daniel',
|
|
status: 'paid'
|
|
}];
|
|
const segments = ['status:free'];
|
|
|
|
const partitions = partitionMembersBySegment(members, segments);
|
|
|
|
should.exist(partitions['status:free']);
|
|
partitions['status:free'].length.should.equal(2);
|
|
partitions['status:free'][0].name.should.equal('Free Rish');
|
|
partitions['status:free'][1].name.should.equal('Free Matt');
|
|
|
|
should.exist(partitions.unsegmented);
|
|
partitions.unsegmented.length.should.equal(1);
|
|
partitions.unsegmented[0].name.should.equal('Paid Daniel');
|
|
});
|
|
|
|
it('partition members with two segments', function () {
|
|
const members = [{
|
|
name: 'Free Rish',
|
|
status: 'free'
|
|
}, {
|
|
name: 'Free Matt',
|
|
status: 'free'
|
|
}, {
|
|
name: 'Paid Daniel',
|
|
status: 'paid'
|
|
}];
|
|
const segments = ['status:free', 'status:-free'];
|
|
|
|
const partitions = partitionMembersBySegment(members, segments);
|
|
|
|
should.exist(partitions['status:free']);
|
|
partitions['status:free'].length.should.equal(2);
|
|
partitions['status:free'][0].name.should.equal('Free Rish');
|
|
partitions['status:free'][1].name.should.equal('Free Matt');
|
|
|
|
should.exist(partitions['status:-free']);
|
|
partitions['status:-free'].length.should.equal(1);
|
|
partitions['status:-free'][0].name.should.equal('Paid Daniel');
|
|
|
|
should.not.exist(partitions.unsegmented);
|
|
});
|
|
|
|
it('throws if unsupported segment has been used', function () {
|
|
const members = [];
|
|
|
|
const segments = ['not a valid segment'];
|
|
|
|
should.throws(() => {
|
|
partitionMembersBySegment(members, segments);
|
|
}, errors.ValidationError);
|
|
});
|
|
});
|
|
});
|