mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-16 11:15:12 +00:00
renew renameStorage api
This commit is contained in:
@@ -8,24 +8,20 @@ const _ = require('lodash')
|
|||||||
function renameStorage (key, name) {
|
function renameStorage (key, name) {
|
||||||
if (!_.isString(name)) return Promise.reject(new Error('Name must be a string.'))
|
if (!_.isString(name)) return Promise.reject(new Error('Name must be a string.'))
|
||||||
|
|
||||||
let rawStorages
|
let cachedStorageList
|
||||||
try {
|
try {
|
||||||
rawStorages = JSON.parse(localStorage.getItem('storages'))
|
cachedStorageList = JSON.parse(localStorage.getItem('storages'))
|
||||||
if (!_.isArray(rawStorages)) throw new Error('invalid storages')
|
if (!_.isArray(cachedStorageList)) throw new Error('invalid storages')
|
||||||
} catch (e) {
|
} catch (err) {
|
||||||
console.warn(e)
|
console.log('error got')
|
||||||
rawStorages = []
|
console.error(err)
|
||||||
|
return Promise.reject(err)
|
||||||
}
|
}
|
||||||
|
let targetStorage = _.find(cachedStorageList, {key: key})
|
||||||
|
if (targetStorage == null) return Promise.reject('Storage')
|
||||||
|
|
||||||
let targetStorage
|
targetStorage.name = name
|
||||||
for (let i = 0; i < rawStorages.length; i++) {
|
localStorage.setItem('storages', JSON.stringify(cachedStorageList))
|
||||||
if (rawStorages[i].key === key) {
|
|
||||||
rawStorages[i].name = name
|
|
||||||
targetStorage = rawStorages[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
localStorage.setItem('storages', JSON.stringify(rawStorages))
|
|
||||||
|
|
||||||
return Promise.resolve(targetStorage)
|
return Promise.resolve(targetStorage)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,29 +10,29 @@ const localStorage = window.localStorage = global.localStorage = new Storage(nul
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
|
const TestDummy = require('../fixtures/TestDummy')
|
||||||
|
const sander = require('sander')
|
||||||
|
const os = require('os')
|
||||||
|
|
||||||
test('Rename a storage', (t) => {
|
const storagePath = path.join(os.tmpdir(), 'test/rename-storage')
|
||||||
const dummyStoragePath = path.join(__dirname, '..', 'dummy/dummyStorage')
|
test.beforeEach((t) => {
|
||||||
const dummyStorageKey = crypto.randomBytes(6).toString('hex')
|
t.context.storage = TestDummy.dummyStorage(storagePath)
|
||||||
const dummyRawStorage = {
|
localStorage.setItem('storages', JSON.stringify([t.context.storage.cache]))
|
||||||
name: 'test1',
|
})
|
||||||
key: dummyStorageKey,
|
|
||||||
path: dummyStoragePath
|
|
||||||
}
|
|
||||||
|
|
||||||
|
test.serial('Rename a storage', (t) => {
|
||||||
|
const stoargeKey = t.context.storage.cache.key
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
.then(function before () {
|
.then(function doTest () {
|
||||||
localStorage.setItem('storages', JSON.stringify([dummyRawStorage]))
|
return renameStorage(stoargeKey, 'changed')
|
||||||
})
|
|
||||||
.then(function test () {
|
|
||||||
return renameStorage(dummyStorageKey, 'test2')
|
|
||||||
})
|
})
|
||||||
.then(function assert (data) {
|
.then(function assert (data) {
|
||||||
let rawStorages = JSON.parse(localStorage.getItem('storages'))
|
let cachedStorageList = JSON.parse(localStorage.getItem('storages'))
|
||||||
t.true(_.find(rawStorages, {key: dummyStorageKey}).name === 'test2')
|
t.true(_.find(cachedStorageList, {key: stoargeKey}).name === 'changed')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test.after(function after () {
|
test.after(function after () {
|
||||||
localStorage.clear()
|
localStorage.clear()
|
||||||
|
sander.rimrafSync(storagePath)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user