import { beEqualTo, beVisible, haveText, html, notBeVisible, test } from '../../utils' test('can persist number', [html`
`], ({ get }, reload) => { get('span').should(haveText('1')) get('button').click() get('span').should(haveText('2')) reload() get('span').should(haveText('2')) }, ) test('can persist string', [html`
`], ({ get }, reload) => { get('span').should(haveText('foo')) get('input').clear().type('bar') get('span').should(haveText('bar')) reload() get('span').should(haveText('bar')) }, ) test('can persist array', [html`
`], ({ get }, reload) => { get('span').should(haveText('foo-bar')) get('button').click() get('span').should(haveText('foo-bar-baz')) reload() get('span').should(haveText('foo-bar-baz')) }, ) test('can persist object', [html`
`], ({ get }, reload) => { get('span').should(haveText('bar')) get('button#one').click() get('span').should(haveText('baz')) reload() get('span').should(haveText('baz')) get('button#two').click() get('span').should(haveText('bob')) reload() get('span').should(haveText('bob')) }, ) test('can persist boolean', [html`
`], ({ get }, reload) => { get('span').should(notBeVisible()) get('button').click() get('span').should(beVisible()) reload() get('span').should(beVisible()) }, ) test('can persist multiple components using the same property', [html`
`], ({ get }, reload) => { get('span#one').should(haveText('foo')) get('span#two').should(haveText('foo')) get('button').click() get('span#one').should(haveText('bar')) reload() get('span#one').should(haveText('bar')) get('span#two').should(haveText('bar')) }, ) test('can persist using an alias', [html`
`], ({ get }, reload) => { get('span#one').should(notBeVisible()) get('span#two').should(notBeVisible()) get('button').click() get('span#one').should(notBeVisible()) get('span#two').should(beVisible()) reload() get('span#one').should(notBeVisible()) get('span#two').should(beVisible()) }, ) test('aliases do not affect other $persist calls', [html`
`], ({ get }, reload) => { get('span#one').should(notBeVisible()) get('span#two').should(notBeVisible()) get('button').click() get('span#one').should(notBeVisible()) get('span#two').should(beVisible()) reload() get('span#one').should(notBeVisible()) get('span#two').should(beVisible()) }, ) test('can persist to custom storage', [html`
`], ({ get, window }, reload) => { get('span').should(haveText('foo')) get('input').clear().type('bar') get('span').should(haveText('bar')) reload() get('span').should(haveText('bar')) window().its('sessionStorage._x_message').should(beEqualTo(JSON.stringify('bar'))) }, ) test('can persist to custom storage using an alias', [html`
`], ({ get, window }, reload) => { get('span').should(haveText('foo')) get('input').clear().type('bar') get('span').should(haveText('bar')) window().its('sessionStorage.mymessage').should(beEqualTo(JSON.stringify('bar'))) }, )