aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/src/views/CalDavSettings.spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/src/views/CalDavSettings.spec.js')
-rw-r--r--apps/dav/src/views/CalDavSettings.spec.js116
1 files changed, 116 insertions, 0 deletions
diff --git a/apps/dav/src/views/CalDavSettings.spec.js b/apps/dav/src/views/CalDavSettings.spec.js
new file mode 100644
index 00000000000..3f9254a3010
--- /dev/null
+++ b/apps/dav/src/views/CalDavSettings.spec.js
@@ -0,0 +1,116 @@
+import axios from '@nextcloud/axios'
+import { render } from '@testing-library/vue'
+import userEvent from '@testing-library/user-event'
+import CalDavSettings from './CalDavSettings'
+// eslint-disable-next-line no-unused-vars
+import { generateUrl } from '@nextcloud/router'
+
+jest.mock('@nextcloud/axios')
+jest.mock('@nextcloud/router', () => {
+ return {
+ generateUrl(url) {
+ return url
+ },
+ }
+})
+
+describe('CalDavSettings', () => {
+ const originalOC = global.OC
+ const originalOCP = global.OCP
+
+ beforeEach(() => {
+ global.OC = { requestToken: 'secret' }
+ global.OCP = {
+ AppConfig: {
+ setValue: jest.fn(),
+ },
+ }
+ })
+ afterAll(() => {
+ global.OC = originalOC
+ global.OCP = originalOCP
+ })
+
+ test('interactions', async() => {
+ const TLUtils = render(
+ CalDavSettings,
+ {
+ data() {
+ return {
+ sendInvitations: true,
+ generateBirthdayCalendar: true,
+ sendEventReminders: true,
+ sendEventRemindersPush: true,
+ }
+ },
+ },
+ Vue => {
+ Vue.prototype.$t = jest.fn((app, text) => text)
+ }
+ )
+ expect(TLUtils.container).toMatchSnapshot()
+ const sendInvitations = TLUtils.getByLabelText(
+ 'Send invitations to attendees'
+ )
+ expect(sendInvitations).toBeChecked()
+ const generateBirthdayCalendar = TLUtils.getByLabelText(
+ 'Automatically generate a birthday calendar'
+ )
+ expect(generateBirthdayCalendar).toBeChecked()
+ const sendEventReminders = TLUtils.getByLabelText(
+ 'Send notifications for events'
+ )
+ expect(sendEventReminders).toBeChecked()
+ const sendEventRemindersPush = TLUtils.getByLabelText(
+ 'Enable notifications for events via push'
+ )
+ expect(sendEventRemindersPush).toBeChecked()
+
+ await userEvent.click(sendInvitations)
+ expect(sendInvitations).not.toBeChecked()
+ expect(OCP.AppConfig.setValue).toHaveBeenCalledWith(
+ 'dav',
+ 'sendInvitations',
+ 'no'
+ )
+ OCP.AppConfig.setValue.mockClear()
+ await userEvent.click(sendInvitations)
+ expect(sendInvitations).toBeChecked()
+ expect(OCP.AppConfig.setValue).toHaveBeenCalledWith(
+ 'dav',
+ 'sendInvitations',
+ 'yes'
+ )
+
+ axios.post.mockImplementationOnce((uri) => {
+ expect(uri).toBe('/apps/dav/disableBirthdayCalendar')
+ return Promise.resolve()
+ })
+ await userEvent.click(generateBirthdayCalendar)
+ axios.post.mockImplementationOnce((uri) => {
+ expect(uri).toBe('/apps/dav/enableBirthdayCalendar')
+ return Promise.resolve()
+ })
+ await userEvent.click(generateBirthdayCalendar)
+ expect(generateBirthdayCalendar).toBeEnabled()
+
+ OCP.AppConfig.setValue.mockClear()
+ await userEvent.click(sendEventReminders)
+ expect(sendEventReminders).not.toBeChecked()
+ expect(OCP.AppConfig.setValue).toHaveBeenCalledWith(
+ 'dav',
+ 'sendEventReminders',
+ 'no'
+ )
+ expect(sendEventRemindersPush).toBeDisabled()
+ OCP.AppConfig.setValue.mockClear()
+ await userEvent.click(sendEventReminders)
+ expect(sendEventReminders).toBeChecked()
+ expect(OCP.AppConfig.setValue).toHaveBeenCalledWith(
+ 'dav',
+ 'sendEventReminders',
+ 'yes'
+ )
+ expect(sendEventRemindersPush).toBeEnabled()
+ })
+})