|
1 |
| -// eslint-disable-next-line import/no-unresolved, import/extensions |
| 1 | +// eslint-disable-next-line import/extensions, import/no-unresolved |
2 | 2 | import {persistResumableFields, restoreResumableFields} from '../dist/index.js'
|
3 | 3 |
|
4 | 4 | describe('session-resume', function () {
|
@@ -156,5 +156,48 @@ describe('session-resume', function () {
|
156 | 156 | ['my-second-field', 'test2']
|
157 | 157 | ])
|
158 | 158 | })
|
| 159 | + |
| 160 | + it('scopes fields based on the selector: option', function () { |
| 161 | + document.getElementById('my-first-field').value = 'test1' |
| 162 | + document.getElementById('my-second-field').value = 'test2' |
| 163 | + |
| 164 | + sessionStorage.clear() |
| 165 | + persistResumableFields('test-persist', {selector: '#my-first-field'}) |
| 166 | + |
| 167 | + assert.deepEqual(JSON.parse(sessionStorage.getItem('session-resume:test-persist')), [['my-first-field', 'test1']]) |
| 168 | + }) |
| 169 | + |
| 170 | + it('scopes fields based on the scope: option', function () { |
| 171 | + // eslint-disable-next-line github/no-inner-html |
| 172 | + document.body.innerHTML = ` |
| 173 | + <form> |
| 174 | + <input id="my-first-field" value="first-field-value" class="js-session-resumable" /> |
| 175 | + <input id="my-second-field" value="second-field-value" class="js-session-resumable" /> |
| 176 | + </form> |
| 177 | + <input id="my-third-field" value="second-third-value" class="js-session-resumable" /> |
| 178 | + ` |
| 179 | + document.getElementById('my-first-field').value = 'test1' |
| 180 | + document.getElementById('my-second-field').value = 'test2' |
| 181 | + document.getElementById('my-third-field').value = 'test3' |
| 182 | + |
| 183 | + sessionStorage.clear() |
| 184 | + persistResumableFields('test-persist', {scope: document.querySelector('form')}) |
| 185 | + |
| 186 | + assert.deepEqual(JSON.parse(sessionStorage.getItem('session-resume:test-persist')), [ |
| 187 | + ['my-first-field', 'test1'], |
| 188 | + ['my-second-field', 'test2'] |
| 189 | + ]) |
| 190 | + }) |
| 191 | + it('scopes fields based on the fields: option', function () { |
| 192 | + document.getElementById('my-first-field').value = 'test1' |
| 193 | + document.getElementById('my-second-field').value = 'test2' |
| 194 | + |
| 195 | + sessionStorage.clear() |
| 196 | + persistResumableFields('test-persist', {fields: document.querySelectorAll('#my-second-field')}) |
| 197 | + |
| 198 | + assert.deepEqual(JSON.parse(sessionStorage.getItem('session-resume:test-persist')), [ |
| 199 | + ['my-second-field', 'test2'] |
| 200 | + ]) |
| 201 | + }) |
159 | 202 | })
|
160 | 203 | })
|
0 commit comments