diff options
Diffstat (limited to 'spec/frontend/lib/utils/autosave_spec.js')
-rw-r--r-- | spec/frontend/lib/utils/autosave_spec.js | 57 |
1 files changed, 46 insertions, 11 deletions
diff --git a/spec/frontend/lib/utils/autosave_spec.js b/spec/frontend/lib/utils/autosave_spec.js index 12e97f6cdec..afb49dd6db4 100644 --- a/spec/frontend/lib/utils/autosave_spec.js +++ b/spec/frontend/lib/utils/autosave_spec.js @@ -1,32 +1,42 @@ -import { clearDraft, getDraft, updateDraft } from '~/lib/utils/autosave'; +import { clearDraft, getDraft, updateDraft, getLockVersion } from '~/lib/utils/autosave'; describe('autosave utils', () => { const autosaveKey = 'dummy-autosave-key'; const text = 'some dummy text'; + const lockVersion = '2'; + const normalizedAutosaveKey = `autosave/${autosaveKey}`; + const lockVersionKey = `autosave/${autosaveKey}/lockVersion`; describe('clearDraft', () => { beforeEach(() => { - localStorage.setItem(`autosave/${autosaveKey}`, text); + localStorage.setItem(normalizedAutosaveKey, text); + localStorage.setItem(lockVersionKey, lockVersion); }); afterEach(() => { - localStorage.removeItem(`autosave/${autosaveKey}`); + localStorage.removeItem(normalizedAutosaveKey); }); it('removes the draft from localStorage', () => { clearDraft(autosaveKey); - expect(localStorage.getItem(`autosave/${autosaveKey}`)).toBe(null); + expect(localStorage.getItem(normalizedAutosaveKey)).toBe(null); + }); + + it('removes the lockVersion from localStorage', () => { + clearDraft(autosaveKey); + + expect(localStorage.getItem(lockVersionKey)).toBe(null); }); }); describe('getDraft', () => { beforeEach(() => { - localStorage.setItem(`autosave/${autosaveKey}`, text); + localStorage.setItem(normalizedAutosaveKey, text); }); afterEach(() => { - localStorage.removeItem(`autosave/${autosaveKey}`); + localStorage.removeItem(normalizedAutosaveKey); }); it('returns the draft from localStorage', () => { @@ -36,7 +46,7 @@ describe('autosave utils', () => { }); it('returns null if no entry exists in localStorage', () => { - localStorage.removeItem(`autosave/${autosaveKey}`); + localStorage.removeItem(normalizedAutosaveKey); const result = getDraft(autosaveKey); @@ -46,19 +56,44 @@ describe('autosave utils', () => { describe('updateDraft', () => { beforeEach(() => { - localStorage.setItem(`autosave/${autosaveKey}`, text); + localStorage.setItem(normalizedAutosaveKey, text); }); afterEach(() => { - localStorage.removeItem(`autosave/${autosaveKey}`); + localStorage.removeItem(normalizedAutosaveKey); }); - it('removes the draft from localStorage', () => { + it('updates the stored draft', () => { const newText = 'new text'; updateDraft(autosaveKey, newText); - expect(localStorage.getItem(`autosave/${autosaveKey}`)).toBe(newText); + expect(localStorage.getItem(normalizedAutosaveKey)).toBe(newText); + }); + + describe('when lockVersion is provided', () => { + it('updates the stored lockVersion', () => { + const newText = 'new text'; + const newLockVersion = '2'; + + updateDraft(autosaveKey, newText, lockVersion); + + expect(localStorage.getItem(lockVersionKey)).toBe(newLockVersion); + }); + }); + }); + + describe('getLockVersion', () => { + beforeEach(() => { + localStorage.setItem(lockVersionKey, lockVersion); + }); + + afterEach(() => { + localStorage.removeItem(lockVersionKey); + }); + + it('returns the lockVersion from localStorage', () => { + expect(getLockVersion(autosaveKey)).toBe(lockVersion); }); }); }); |