|
| 1 | +/** |
| 2 | + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors |
| 3 | + * SPDX-License-Identifier: AGPL-3.0-or-later |
| 4 | + */ |
| 5 | + |
| 6 | +import { computed } from 'vue' |
| 7 | +// The store index has to be imported first to avoid a circular import issue |
| 8 | +import store from '../../../src/store/index.js' |
| 9 | + |
| 10 | +describe('addressbooks mutations', () => { |
| 11 | + beforeEach(() => { |
| 12 | + store.state.addressbooks.addressbooks.splice(0) |
| 13 | + store.commit('addAddressbook', { |
| 14 | + id: 'ab1', |
| 15 | + displayName: 'Address book', |
| 16 | + enabled: true, |
| 17 | + url: '/remote.php/dav/addressbooks/users/admin/ab1/', |
| 18 | + }) |
| 19 | + }) |
| 20 | + |
| 21 | + test('toggleAddressbookEnabled updates the reactive state', () => { |
| 22 | + const addressbook = store.getters.getAddressbooks[0] |
| 23 | + const enabled = computed(() => addressbook.enabled) |
| 24 | + expect(enabled.value).toBe(true) |
| 25 | + |
| 26 | + store.commit('toggleAddressbookEnabled', addressbook) |
| 27 | + |
| 28 | + expect(addressbook.enabled).toBe(false) |
| 29 | + // the change has to be picked up by reactive consumers, e.g. the settings dialog |
| 30 | + expect(enabled.value).toBe(false) |
| 31 | + }) |
| 32 | + |
| 33 | + test('renameAddressbook updates the reactive state', () => { |
| 34 | + const addressbook = store.getters.getAddressbooks[0] |
| 35 | + const displayName = computed(() => addressbook.displayName) |
| 36 | + expect(displayName.value).toBe('Address book') |
| 37 | + |
| 38 | + store.commit('renameAddressbook', { addressbook, newName: 'Renamed' }) |
| 39 | + |
| 40 | + expect(addressbook.displayName).toBe('Renamed') |
| 41 | + expect(displayName.value).toBe('Renamed') |
| 42 | + }) |
| 43 | +}) |
0 commit comments