2
0
mirror of https://github.com/thumbsup/thumbsup synced 2024-11-15 18:12:46 +00:00
thumbsup/test/input/picasa.spec.js

72 lines
1.7 KiB
JavaScript

const should = require('should/as-function')
const Picasa = require('../../src/input/picasa.js')
const PICASA_INI = `
[Picasa]
name=My holidays
[IMG_0001.jpg]
star=yes
caption=Nice sunset
keywords=beach,sunset
`
describe('Picasa', function () {
// we require "mock-fs" inside the tests, otherwise it also affects other tests
var mock = null
beforeEach(function () {
mock = require('mock-fs')
})
afterEach(function () {
mock.restore()
})
it('reads album metadata', function () {
mock({
'holidays/picasa.ini': PICASA_INI
})
const picasa = new Picasa()
const meta = picasa.album('holidays')
should(meta).eql({
name: 'My holidays'
})
})
it('returns <null> if there is no album metadata', function () {
const picasa = new Picasa()
const meta = picasa.album('holidays')
should(meta).eql(null)
})
it('returns raw file metadata as read from the INI file', function () {
mock({
'holidays/picasa.ini': PICASA_INI
})
const picasa = new Picasa()
const meta = picasa.file('holidays/IMG_0001.jpg')
should(meta).eql({
star: 'yes',
caption: 'Nice sunset',
keywords: 'beach,sunset'
})
})
it('can read metadata of a file with several dots in the name', function () {
mock({
'holidays/picasa.ini': '[IMG.0001.small.jpg]\ncaption=dots'
})
const picasa = new Picasa()
const meta = picasa.file('holidays/IMG.0001.small.jpg')
should(meta).eql({
caption: 'dots'
})
})
it('returns <null> if a file has no metadata', function () {
mock({
'holidays/picasa.ini': PICASA_INI
})
const picasa = new Picasa()
const meta = picasa.album('holidays/IMG_0002.jpg')
should(meta).eql(null)
})
})