feat(reminders): add e2e tests for task reminders
This commit is contained in:
parent
4eba9479b0
commit
1005182a50
@ -11,6 +11,7 @@ import {LabelTaskFactory} from '../../factories/label_task'
|
|||||||
import {BucketFactory} from '../../factories/bucket'
|
import {BucketFactory} from '../../factories/bucket'
|
||||||
|
|
||||||
import {TaskAttachmentFactory} from '../../factories/task_attachments'
|
import {TaskAttachmentFactory} from '../../factories/task_attachments'
|
||||||
|
import {TaskReminderFactory} from '../../factories/task_reminders'
|
||||||
|
|
||||||
function addLabelToTaskAndVerify(labelTitle: string) {
|
function addLabelToTaskAndVerify(labelTitle: string) {
|
||||||
cy.get('.task-view .action-buttons .button')
|
cy.get('.task-view .action-buttons .button')
|
||||||
@ -461,6 +462,154 @@ describe('Task', () => {
|
|||||||
.should('contain', 'Success')
|
.should('contain', 'Success')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('Can set a reminder', () => {
|
||||||
|
TaskReminderFactory.truncate()
|
||||||
|
const tasks = TaskFactory.create(1, {
|
||||||
|
id: 1,
|
||||||
|
done: false,
|
||||||
|
})
|
||||||
|
cy.visit(`/tasks/${tasks[0].id}`)
|
||||||
|
|
||||||
|
cy.get('.task-view .action-buttons .button')
|
||||||
|
.contains('Set Reminders')
|
||||||
|
.click()
|
||||||
|
cy.get('.task-view .columns.details .column button')
|
||||||
|
.contains('Add a new reminder')
|
||||||
|
.click()
|
||||||
|
cy.get('.datepicker__quick-select-date')
|
||||||
|
.contains('Tomorrow')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.reminder-options-popup')
|
||||||
|
.should('not.be.visible')
|
||||||
|
cy.get('.global-notification')
|
||||||
|
.should('contain', 'Success')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Allows to set a relative reminder when the task already has a due date', () => {
|
||||||
|
TaskReminderFactory.truncate()
|
||||||
|
const tasks = TaskFactory.create(1, {
|
||||||
|
id: 1,
|
||||||
|
done: false,
|
||||||
|
due_date: (new Date()).toISOString(),
|
||||||
|
})
|
||||||
|
cy.visit(`/tasks/${tasks[0].id}`)
|
||||||
|
|
||||||
|
cy.get('.task-view .action-buttons .button')
|
||||||
|
.contains('Set Reminders')
|
||||||
|
.click()
|
||||||
|
cy.get('.task-view .columns.details .column button')
|
||||||
|
.contains('Add a new reminder')
|
||||||
|
.click()
|
||||||
|
cy.get('.datepicker__quick-select-date')
|
||||||
|
.should('not.exist')
|
||||||
|
cy.get('.reminder-options-popup .card-content')
|
||||||
|
.should('contain', '1 day before Due Date')
|
||||||
|
cy.get('.reminder-options-popup .card-content')
|
||||||
|
.contains('1 day before Due Date')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.reminder-options-popup')
|
||||||
|
.should('not.be.visible')
|
||||||
|
cy.get('.global-notification')
|
||||||
|
.should('contain', 'Success')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Allows to set a relative reminder when the task already has a start date', () => {
|
||||||
|
TaskReminderFactory.truncate()
|
||||||
|
const tasks = TaskFactory.create(1, {
|
||||||
|
id: 1,
|
||||||
|
done: false,
|
||||||
|
start_date: (new Date()).toISOString(),
|
||||||
|
})
|
||||||
|
cy.visit(`/tasks/${tasks[0].id}`)
|
||||||
|
|
||||||
|
cy.get('.task-view .action-buttons .button')
|
||||||
|
.contains('Set Reminders')
|
||||||
|
.click()
|
||||||
|
cy.get('.task-view .columns.details .column button')
|
||||||
|
.contains('Add a new reminder')
|
||||||
|
.click()
|
||||||
|
cy.get('.datepicker__quick-select-date')
|
||||||
|
.should('not.exist')
|
||||||
|
cy.get('.reminder-options-popup .card-content')
|
||||||
|
.should('contain', '1 day before Start Date')
|
||||||
|
cy.get('.reminder-options-popup .card-content')
|
||||||
|
.contains('1 day before Start Date')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.reminder-options-popup')
|
||||||
|
.should('not.be.visible')
|
||||||
|
cy.get('.global-notification')
|
||||||
|
.should('contain', 'Success')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Allows to set a custom relative reminder when the task already has a due date', () => {
|
||||||
|
TaskReminderFactory.truncate()
|
||||||
|
const tasks = TaskFactory.create(1, {
|
||||||
|
id: 1,
|
||||||
|
done: false,
|
||||||
|
due_date: (new Date()).toISOString(),
|
||||||
|
})
|
||||||
|
cy.visit(`/tasks/${tasks[0].id}`)
|
||||||
|
|
||||||
|
cy.get('.task-view .action-buttons .button')
|
||||||
|
.contains('Set Reminders')
|
||||||
|
.click()
|
||||||
|
cy.get('.task-view .columns.details .column button')
|
||||||
|
.contains('Add a new reminder')
|
||||||
|
.click()
|
||||||
|
cy.get('.datepicker__quick-select-date')
|
||||||
|
.should('not.exist')
|
||||||
|
cy.get('.reminder-options-popup .card-content')
|
||||||
|
.contains('Custom')
|
||||||
|
.click()
|
||||||
|
cy.get('.reminder-options-popup .card-content .reminder-period input')
|
||||||
|
.first()
|
||||||
|
.type('10')
|
||||||
|
cy.get('.reminder-options-popup .card-content .reminder-period select')
|
||||||
|
.first()
|
||||||
|
.select('days')
|
||||||
|
cy.get('.reminder-options-popup .card-content button')
|
||||||
|
.contains('Confirm')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.reminder-options-popup')
|
||||||
|
.should('not.be.visible')
|
||||||
|
cy.get('.global-notification')
|
||||||
|
.should('contain', 'Success')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Allows to set a fixed reminder when the task already has a due date', () => {
|
||||||
|
TaskReminderFactory.truncate()
|
||||||
|
const tasks = TaskFactory.create(1, {
|
||||||
|
id: 1,
|
||||||
|
done: false,
|
||||||
|
due_date: (new Date()).toISOString(),
|
||||||
|
})
|
||||||
|
cy.visit(`/tasks/${tasks[0].id}`)
|
||||||
|
|
||||||
|
cy.get('.task-view .action-buttons .button')
|
||||||
|
.contains('Set Reminders')
|
||||||
|
.click()
|
||||||
|
cy.get('.task-view .columns.details .column button')
|
||||||
|
.contains('Add a new reminder')
|
||||||
|
.click()
|
||||||
|
cy.get('.datepicker__quick-select-date')
|
||||||
|
.should('not.exist')
|
||||||
|
cy.get('.reminder-options-popup .card-content')
|
||||||
|
.contains('Date and time')
|
||||||
|
.click()
|
||||||
|
cy.get('.datepicker__quick-select-date')
|
||||||
|
.contains('Tomorrow')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.reminder-options-popup')
|
||||||
|
.should('not.be.visible')
|
||||||
|
cy.get('.global-notification')
|
||||||
|
.should('contain', 'Success')
|
||||||
|
})
|
||||||
|
|
||||||
it('Can set a priority for a task', () => {
|
it('Can set a priority for a task', () => {
|
||||||
const tasks = TaskFactory.create(1, {
|
const tasks = TaskFactory.create(1, {
|
||||||
id: 1,
|
id: 1,
|
||||||
|
18
cypress/factories/task_reminders.ts
Normal file
18
cypress/factories/task_reminders.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import {Factory} from '../support/factory'
|
||||||
|
|
||||||
|
export class TaskReminderFactory extends Factory {
|
||||||
|
static table = 'task_reminders'
|
||||||
|
|
||||||
|
static factory() {
|
||||||
|
const now = new Date()
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: '{increment}',
|
||||||
|
task_id: 1,
|
||||||
|
reminder: now.toISOString(),
|
||||||
|
created: now.toISOString(),
|
||||||
|
relative_to: '',
|
||||||
|
relative_period: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -4,7 +4,7 @@ import {seed} from './seed'
|
|||||||
* A factory makes it easy to seed the database with data.
|
* A factory makes it easy to seed the database with data.
|
||||||
*/
|
*/
|
||||||
export class Factory {
|
export class Factory {
|
||||||
static table = null
|
static table: string | null = null
|
||||||
|
|
||||||
static factory() {
|
static factory() {
|
||||||
return {}
|
return {}
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
<DatepickerInline
|
<DatepickerInline
|
||||||
v-if="activeForm === 'absolute'"
|
v-if="activeForm === 'absolute'"
|
||||||
v-model="reminderDate"
|
v-model="reminderDate"
|
||||||
@update:modelValue="setReminderDate"
|
@update:modelValue="setReminderDate(toggle)"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<x-button
|
<x-button
|
||||||
@ -148,13 +148,13 @@ function updateData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setReminderDate() {
|
function setReminderDate(toggle) {
|
||||||
reminder.value.reminder = reminderDate.value === null
|
reminder.value.reminder = reminderDate.value === null
|
||||||
? null
|
? null
|
||||||
: new Date(reminderDate.value)
|
: new Date(reminderDate.value)
|
||||||
reminder.value.relativeTo = null
|
reminder.value.relativeTo = null
|
||||||
reminder.value.relativePeriod = 0
|
reminder.value.relativePeriod = 0
|
||||||
updateData()
|
updateDataAndMaybeClose(toggle)
|
||||||
}
|
}
|
||||||
|
|
||||||
function setReminderFromPreset(preset, toggle) {
|
function setReminderFromPreset(preset, toggle) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user