rittenhop-dev/versions/5.94.2/node_modules/@tryghost/member-attribution/test/history.test.js

118 lines
2.9 KiB
JavaScript
Raw Normal View History

2024-09-23 19:40:12 -04:00
// Switch these lines once there are useful utils
// const testUtils = require('./utils');
require('./utils');
const UrlHistory = require('../lib/UrlHistory');
describe('UrlHistory', function () {
it('sets history to empty array if invalid', function () {
const inputs = [
'string',
undefined,
12,
null,
{},
NaN,
[
{
time: 1,
path: '/test'
},
't'
],
[{}],
['test'],
[0],
[undefined],
[NaN],
[[]],
[{
time: 'test',
path: 'test'
}],
[{
path: 'test'
}],
[{
time: 123
}],
[{
time: 123,
type: 'post'
}],
[{
time: 123,
id: 'id'
}],
[{
time: 123,
type: 123,
id: 'test'
}],
[{
time: 123,
type: 'invalid',
id: 'test'
}],
[{
time: 123,
type: 'post',
id: 123
}]
];
for (const input of inputs) {
const history = UrlHistory.create(input);
should(history.history).eql([]);
}
});
it('sets history for valid arrays', function () {
const inputs = [
[],
[{
time: Date.now(),
path: '/test'
}],
[{
time: Date.now(),
type: 'post',
id: '123'
}],
[{
time: Date.now(),
type: 'post',
id: '123',
referrerSource: 'ghost-explore',
referrerMedium: null,
referrerUrl: 'https://ghost.org'
}],
[{
time: Date.now(),
referrerSource: 'ghost-explore',
referrerMedium: null,
referrerUrl: 'https://ghost.org'
}]
];
for (const input of inputs) {
const history = UrlHistory.create(input);
should(history.history).eql(input);
}
});
it('removes entries older than 24 hours', function () {
const input = [{
time: Date.now() - 1000 * 60 * 60 * 25,
path: '/old'
}, {
time: Date.now() - 1000 * 60 * 60 * 23,
path: '/not-old'
}, {
time: Date.now() - 1000 * 60 * 60 * 25,
type: 'post',
id: 'old'
}];
const history = UrlHistory.create(input);
should(history.history).eql([input[1]]);
});
});