You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
thumbsup/test/components/index/delta.spec.js

115 lines
2.5 KiB
JavaScript

const delta = require('../../../src/components/index/delta')
const should = require('should/as-function')
describe('Index: delta', () => {
it('no changes', () => {
const database = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000
}
const disk = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000
}
const res = delta.calculate(database, disk)
should(res).eql({
unchanged: ['IMG_0001', 'IMG_0002'],
added: [],
modified: [],
deleted: []
})
})
it('no changes within a second', () => {
const database = {
IMG_0001: 1410000001000,
IMG_0002: 1420000001000
}
const disk = {
IMG_0001: 1410000001500, // 500ms later
IMG_0002: 1420000000500 // 500ms earlier
}
const res = delta.calculate(database, disk)
should(res).eql({
unchanged: ['IMG_0001', 'IMG_0002'],
added: [],
modified: [],
deleted: []
})
})
it('new files', () => {
const database = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000
}
const disk = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000,
IMG_0003: 1430000000000
}
const res = delta.calculate(database, disk)
should(res).eql({
unchanged: ['IMG_0001', 'IMG_0002'],
added: ['IMG_0003'],
modified: [],
deleted: []
})
})
it('deleted files', () => {
const database = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000
}
const disk = {
IMG_0001: 1410000000000
}
const res = delta.calculate(database, disk)
should(res).eql({
unchanged: ['IMG_0001'],
added: [],
modified: [],
deleted: ['IMG_0002']
})
})
it('modified files', () => {
const database = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000
}
const disk = {
IMG_0001: 1410000000000,
IMG_0002: 1420000002000
}
const res = delta.calculate(database, disk)
should(res).eql({
unchanged: ['IMG_0001'],
added: [],
modified: ['IMG_0002'],
deleted: []
})
})
it('all cases', () => {
const database = {
IMG_0001: 1410000000000,
IMG_0002: 1420000000000,
IMG_0003: 1430000000000
}
const disk = {
IMG_0001: 1410000000000,
IMG_0002: 1420000002000,
IMG_0004: 1445000000000
}
const res = delta.calculate(database, disk)
should(res).eql({
unchanged: ['IMG_0001'],
added: ['IMG_0004'],
modified: ['IMG_0002'],
deleted: ['IMG_0003']
})
})
})