test(e2e): cover quick add auto-attaching default reminders
This commit is contained in:
parent
5afd066a13
commit
f6693f81a2
|
|
@ -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')
|
||||
})
|
||||
})
|
||||
Loading…
Reference in New Issue