actual/packages/loot-core/src/server/backups.test.js
Tom French dc53a74459
Separate external, monorepo and internal imports (#237)
* style: enforce ordering of imports

* style: sort imports in loot-core

* style: sort imports in desktop-client

* style: sort imports in loot-design

* style: manual fixes
2022-09-02 12:43:37 +01:00

79 lines
2.8 KiB
JavaScript

import { updateBackups } from './backups';
const dateFns = require('date-fns');
describe('Backups', () => {
test('backups work', async () => {
async function getUpdatedBackups(backups) {
const toRemove = await updateBackups(backups);
return backups.filter(b => !toRemove.includes(b.id));
}
function cleanDates(backups) {
return backups.map(backup => ({
id: backup.id,
date: dateFns.format(backup.date, 'yyyy-MM-dd')
}));
}
// Should keep 3 backups on the current day
expect(
cleanDates(
await getUpdatedBackups([
{ id: 'backup1', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup2', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup3', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup4', date: dateFns.parseISO('2017-01-01') }
])
)
).toMatchSnapshot();
// Should not delete any since up to 3 are allowed on the current
// day
expect(
cleanDates(
await getUpdatedBackups([
{ id: 'backup1', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup2', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup3', date: dateFns.parseISO('2016-12-30') },
{ id: 'backup4', date: dateFns.parseISO('2016-12-29') }
])
)
).toMatchSnapshot();
// Should delete any additional backups on other days (keep the
// two on the current day but delete copies on other days)
expect(
cleanDates(
await getUpdatedBackups([
{ id: 'backup1', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup2', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup3', date: dateFns.parseISO('2016-12-29') },
{ id: 'backup4', date: dateFns.parseISO('2016-12-29') },
{ id: 'backup5', date: dateFns.parseISO('2016-12-29') }
])
)
).toMatchSnapshot();
// Should only keep up to 10 backups
expect(
cleanDates(
await getUpdatedBackups([
{ id: 'backup1', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup2', date: dateFns.parseISO('2017-01-01') },
{ id: 'backup3', date: dateFns.parseISO('2016-12-29') },
{ id: 'backup4', date: dateFns.parseISO('2016-12-28') },
{ id: 'backup5', date: dateFns.parseISO('2016-12-27') },
{ id: 'backup6', date: dateFns.parseISO('2016-12-26') },
{ id: 'backup7', date: dateFns.parseISO('2016-12-25') },
{ id: 'backup8', date: dateFns.parseISO('2016-12-24') },
{ id: 'backup9', date: dateFns.parseISO('2016-12-23') },
{ id: 'backup10', date: dateFns.parseISO('2016-12-22') },
{ id: 'backup11', date: dateFns.parseISO('2016-12-21') },
{ id: 'backup12', date: dateFns.parseISO('2016-12-20') }
])
)
).toMatchSnapshot();
});
});