diff --git a/src/picker/PickerElement.js b/src/picker/PickerElement.js index 90223fca..c71faff7 100644 --- a/src/picker/PickerElement.js +++ b/src/picker/PickerElement.js @@ -37,6 +37,7 @@ export default class PickerElement extends HTMLElement { for (const prop of PROPS) { if (prop !== 'database' && Object.hasOwnProperty.call(this, prop)) { this._ctx[prop] = this[prop] + delete this[prop] } } this._dbFlush() // wait for a flush before creating the db, in case the user calls e.g. a setter or setAttribute diff --git a/test/spec/picker/upgrade.test.js b/test/spec/picker/upgrade.test.js index 661b44d4..78e1285b 100644 --- a/test/spec/picker/upgrade.test.js +++ b/test/spec/picker/upgrade.test.js @@ -40,14 +40,15 @@ describe('upgrade tests', () => { expect(fetch).toHaveBeenCalledTimes(1) expect(fetch).toHaveBeenLastCalledWith(FR_EMOJI, undefined) - expect(getByRole(container, 'menuitem', { name: /👍/ })).toBeVisible() + expect(getByRole(container, 'button', { name: /Choose a skin tone/ }).innerHTML).toContain('👍') expect(picker.locale).toEqual('fr') expect(picker.dataSource).toEqual(FR_EMOJI) + // The setter should now work as expected picker.skinToneEmoji = '✌' - await waitFor(() => expect(getByRole(container, 'menuitem', { name: /👍/ })).toBeVisible()) + await waitFor(() => expect(getByRole(container, 'button', { name: /Choose a skin tone/ }).innerHTML).toContain('✌')) document.body.removeChild(div) await tick(20)