1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00

init dataApi method test

This commit is contained in:
Dick Choi
2016-08-24 03:00:49 +09:00
parent ad33e9f32d
commit 52d065a38d
7 changed files with 219 additions and 3 deletions

83
tests/dataApi/init.js Normal file
View File

@@ -0,0 +1,83 @@
const test = require('ava')
const init = require('browser/main/lib/dataApi/init')
global.document = require('jsdom').jsdom('<body></body>')
global.window = document.defaultView
global.navigator = window.navigator
const Storage = require('dom-storage')
const localStorage = window.localStorage = global.localStorage = new Storage(null, { strict: true })
const sander = require('sander')
const path = require('path')
const crypto = require('crypto')
const dummyStoragePath = path.join(__dirname, '..', 'sandbox')
const dummyRawStorage = {
name: 'test',
key: crypto.randomBytes(6).toString('hex'),
path: dummyStoragePath
}
test.serial('fetch storages and notes', (t) => {
const boostnoteJSONPath = path.join(dummyStoragePath, 'boostnote.json')
const dummyFolderKey = crypto.randomBytes(6).toString('hex')
const dummyFolders = [{
key: dummyFolderKey,
name: 'test1',
color: '#f55'
}]
const dummyFolderDataJSONPath = path.join(dummyStoragePath, dummyFolderKey, 'data.json')
const dummyNotesJSONString = sander.readFileSync(path.join(__dirname, '../dummy/data.json'))
return Promise.resolve()
.then(function before () {
localStorage.setItem('storages', JSON.stringify([dummyRawStorage]))
sander.writeFileSync(boostnoteJSONPath, JSON.stringify({folders: dummyFolders}))
sander.writeFileSync(dummyFolderDataJSONPath, dummyNotesJSONString)
})
.then(function test () {
return init()
})
.then(function assert (data) {
t.true(Array.isArray(data.storages))
var targetStorage = data.storages.filter((storage) => storage.key === dummyRawStorage.key)[0]
t.not(targetStorage, null)
t.is(targetStorage.name, dummyRawStorage.name)
t.is(targetStorage.key, dummyRawStorage.key)
t.is(targetStorage.path, dummyRawStorage.path)
t.is(data.notes.length, 2)
data.notes.forEach((note) => {
t.is(note.folder, dummyFolderKey)
})
t.true(Array.isArray(data.notes))
})
.then(function after () {
localStorage.clear()
sander.unlinkSync(boostnoteJSONPath)
sander.unlinkSync(dummyFolderDataJSONPath)
})
})
test.serial('Fetch storages. case: storage folder doesnt exist.', (t) => {
return Promise.resolve()
.then(function before () {
localStorage.setItem('storages', JSON.stringify([dummyRawStorage]))
})
.then(function test () {
return init()
})
.then(function assert (data) {
t.true(Array.isArray(data.storages))
var targetStorage = data.storages.filter((storage) => storage.key === dummyRawStorage.key)[0]
t.not(targetStorage, null)
t.is(targetStorage.name, dummyRawStorage.name)
t.is(targetStorage.key, dummyRawStorage.key)
t.is(targetStorage.path, dummyRawStorage.path)
t.true(Array.isArray(data.notes))
})
.then(function after () {
localStorage.clear()
})
})