mirror of
https://github.com/BoostIo/Boostnote
synced 2026-01-06 13:39:19 +00:00
init dataApi method test
This commit is contained in:
1
tests/.gitignore
vendored
Normal file
1
tests/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
sandbox/*
|
||||
83
tests/dataApi/init.js
Normal file
83
tests/dataApi/init.js
Normal 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()
|
||||
})
|
||||
})
|
||||
28
tests/dummy/data.json
Normal file
28
tests/dummy/data.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{"notes":
|
||||
[
|
||||
{
|
||||
"tags": [],
|
||||
"title": "Footnote test",
|
||||
"content": "# Footnote test\n\ntest test",
|
||||
"type": "MARKDOWN_NOTE",
|
||||
"folder": "fc6ba88e8ecf",
|
||||
"key": "93c6ac2a7953",
|
||||
"isStarred": false,
|
||||
"createdAt": "2016-07-25T16:19:55.620Z",
|
||||
"updatedAt": "2016-07-26T08:00:11.326Z",
|
||||
"uniqueKey": "1714d46e36b5-fc6ba88e8ecf-93c6ac2a7953"
|
||||
},
|
||||
{
|
||||
"tags": [],
|
||||
"title": "Checkbox test",
|
||||
"content": "# Checkbox test\n\n- [x] Task1\n- [ ] Task2\n- [ ] Task3\n\n",
|
||||
"type": "MARKDOWN_NOTE",
|
||||
"folder": "fc6ba88e8ecf",
|
||||
"key": "4568d84331d9",
|
||||
"isStarred": false,
|
||||
"createdAt": "2016-07-25T16:58:43.685Z",
|
||||
"updatedAt": "2016-08-21T06:14:50.381Z",
|
||||
"uniqueKey": "1714d46e36b5-fc6ba88e8ecf-4568d84331d9"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user