From f6693f81a23c6f7d0af725e4e65ae171f3fc9dc1 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 11 Apr 2026 23:41:47 +0200 Subject: [PATCH] test(e2e): cover quick add auto-attaching default reminders --- .../task/quick-add-default-reminders.spec.ts | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 frontend/tests/e2e/task/quick-add-default-reminders.spec.ts diff --git a/frontend/tests/e2e/task/quick-add-default-reminders.spec.ts b/frontend/tests/e2e/task/quick-add-default-reminders.spec.ts new file mode 100644 index 000000000..37e46626b --- /dev/null +++ b/frontend/tests/e2e/task/quick-add-default-reminders.spec.ts @@ -0,0 +1,47 @@ +import {test, expect} from '../../support/fixtures' +import {ProjectFactory} from '../../factories/project' +import {UserFactory} from '../../factories/user' +import {createDefaultViews} from '../project/prepareProjects' +import {login} from '../../support/authenticateUser' +import {REMINDER_PERIOD_RELATIVE_TO_TYPES} from '../../../src/types/IReminderPeriodRelativeTo' +import {SECONDS_A_HOUR} from '../../../src/constants/date' + +test.describe('Quick add default reminders', () => { + test('Auto-attaches default reminder when quick add task has a due date', async ({page, apiContext}) => { + const user = (await UserFactory.create(1, { + frontend_settings: JSON.stringify({ + quickAddDefaultReminders: [ + { + reminder: null, + relativePeriod: -2 * SECONDS_A_HOUR, + relativeTo: REMINDER_PERIOD_RELATIVE_TO_TYPES.DUEDATE, + }, + ], + }), + }))[0] + const project = (await ProjectFactory.create(1, {owner_id: user.id}))[0] + await createDefaultViews(project.id) + + await login(page, apiContext, user) + await page.goto(`/projects/${project.id}/1`) + + await page.locator('.input[placeholder="Add a task…"]').fill('Buy milk tomorrow') + + const createTaskPromise = page.waitForResponse(response => + response.url().includes('/projects/') && + response.url().includes('/tasks') && + response.request().method() === 'PUT', + ) + await page.locator('.button').filter({hasText: 'Add'}).click() + await createTaskPromise + + const taskLink = page.locator('.tasks .task').filter({hasText: 'Buy milk'}).first().locator('a.task-link') + await expect(taskLink).toBeVisible({timeout: 10000}) + await taskLink.click() + + // Reminders section auto-expands when the task already has reminders. + const reminderInput = page.locator('.task-view .columns.details .reminder-input').first() + await expect(reminderInput).toBeVisible({timeout: 10000}) + await expect(reminderInput).toContainText('2 hours before Due Date') + }) +})