mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #3628 from overleaf/ae-global-localstorage
Use Object.defineProperty to set global.localStorage for tests GitOrigin-RevId: 541a253a6d19fcc93b40c74942ae8ecffb85fa60
This commit is contained in:
parent
ceab823447
commit
b35114b81a
3 changed files with 38 additions and 21 deletions
21
services/web/test/frontend/bootstrap.js
vendored
21
services/web/test/frontend/bootstrap.js
vendored
|
@ -26,14 +26,19 @@ moment.updateLocale('en', {
|
|||
})
|
||||
|
||||
let inMemoryLocalStorage = {}
|
||||
global.localStorage = {
|
||||
// localStorage returns `null` when the item does not exist
|
||||
getItem: key =>
|
||||
inMemoryLocalStorage[key] !== undefined ? inMemoryLocalStorage[key] : null,
|
||||
setItem: (key, value) => (inMemoryLocalStorage[key] = value),
|
||||
clear: () => (inMemoryLocalStorage = {}),
|
||||
removeItem: key => delete inMemoryLocalStorage[key]
|
||||
}
|
||||
Object.defineProperty(global, 'localStorage', {
|
||||
value: {
|
||||
// localStorage returns `null` when the item does not exist
|
||||
getItem: key =>
|
||||
inMemoryLocalStorage[key] !== undefined
|
||||
? inMemoryLocalStorage[key]
|
||||
: null,
|
||||
setItem: (key, value) => (inMemoryLocalStorage[key] = value),
|
||||
clear: () => (inMemoryLocalStorage = {}),
|
||||
removeItem: key => delete inMemoryLocalStorage[key]
|
||||
},
|
||||
writable: true
|
||||
})
|
||||
|
||||
// node-fetch doesn't accept relative URL's: https://github.com/node-fetch/node-fetch/blob/master/docs/v2-LIMITS.md#known-differences
|
||||
const fetch = require('node-fetch')
|
||||
|
|
|
@ -15,11 +15,16 @@ describe('<OutlinePane />', function() {
|
|||
renderWithEditorContext(children, { projectId: '123abc' })
|
||||
}
|
||||
|
||||
let originalLocalStorage
|
||||
before(function() {
|
||||
global.localStorage = {
|
||||
getItem: sinon.stub().returns(null),
|
||||
setItem: sinon.stub()
|
||||
}
|
||||
originalLocalStorage = global.localStorage
|
||||
|
||||
Object.defineProperty(global, 'localStorage', {
|
||||
value: {
|
||||
getItem: sinon.stub().returns(null),
|
||||
setItem: sinon.stub()
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
afterEach(function() {
|
||||
|
@ -30,7 +35,9 @@ describe('<OutlinePane />', function() {
|
|||
})
|
||||
|
||||
after(function() {
|
||||
delete global.localStorage
|
||||
Object.defineProperty(global, 'localStorage', {
|
||||
value: originalLocalStorage
|
||||
})
|
||||
})
|
||||
|
||||
it('renders expanded outline', function() {
|
||||
|
|
|
@ -10,22 +10,27 @@ describe('localStorage', function() {
|
|||
})
|
||||
|
||||
after(function() {
|
||||
global.localStorage = originalLocalStorage
|
||||
Object.defineProperty(global, 'localStorage', {
|
||||
value: originalLocalStorage
|
||||
})
|
||||
})
|
||||
|
||||
beforeEach(function() {
|
||||
global.localStorage = {
|
||||
getItem: sinon.stub().returns(null),
|
||||
setItem: sinon.stub(),
|
||||
clear: sinon.stub(),
|
||||
removeItem: sinon.stub()
|
||||
}
|
||||
Object.defineProperty(global, 'localStorage', {
|
||||
value: {
|
||||
getItem: sinon.stub().returns(null),
|
||||
setItem: sinon.stub(),
|
||||
clear: sinon.stub(),
|
||||
removeItem: sinon.stub()
|
||||
}
|
||||
})
|
||||
|
||||
global.console.error = sinon.stub()
|
||||
})
|
||||
|
||||
afterEach(function() {
|
||||
global.console.error.reset()
|
||||
delete global.localStorage
|
||||
Object.defineProperty(global, 'localStorage', { value: undefined })
|
||||
})
|
||||
|
||||
it('getItem', function() {
|
||||
|
|
Loading…
Reference in a new issue