test(e2e): fix or skip non working

This commit is contained in:
Johannes Millan 2024-07-17 15:36:45 +02:00
parent 20190314f7
commit db83ae6e30
8 changed files with 2453 additions and 25933 deletions

View file

@ -6,7 +6,15 @@ const ADD_BTN = '.switch-add-to-btn';
const BACKDROP = '.backdrop';
module.exports = {
async command(this: NightwatchBrowser, taskName: string) {
async command(this: NightwatchBrowser, taskName: string, isSkipClose?: boolean) {
if (isSkipClose) {
return this.waitForElementVisible(ROUTER_WRAPPER)
.setValue('body', 'A')
.waitForElementVisible(ADD_TASK_GLOBAL_SEL)
.setValue(ADD_TASK_GLOBAL_SEL, taskName)
.click(ADD_BTN);
}
return (
this.waitForElementVisible(ROUTER_WRAPPER)
.setValue('body', 'A')

View file

@ -29,25 +29,21 @@ module.exports = {
const h = d.getHours();
const m = d.getMinutes();
return (
this.addTask(title)
.openPanelForTask(taskSel)
.waitForElementVisible(SCHEDULE_TASK_ITEM)
.click(SCHEDULE_TASK_ITEM)
.waitForElementVisible(DIALOG)
.pause(30)
.waitForElementVisible(TIME_INP_H)
.pause(50)
.setValue(TIME_INP_H, h.toString())
.pause(50)
.setValue(TIME_INP_H, this.Keys.ARROW_RIGHT)
.pause(50)
.setValue(TIME_INP_M, m.toString())
// avoid element form being moved to backlog or away from today
.click('mat-checkbox')
.waitForElementVisible(DIALOG_SUBMIT)
.click(DIALOG_SUBMIT)
.waitForElementNotPresent(DIALOG)
);
return this.addTask(title)
.openPanelForTask(taskSel)
.waitForElementVisible(SCHEDULE_TASK_ITEM)
.click(SCHEDULE_TASK_ITEM)
.waitForElementVisible(DIALOG)
.pause(30)
.waitForElementVisible(TIME_INP_H)
.pause(50)
.setValue(TIME_INP_H, h.toString())
.pause(50)
.setValue(TIME_INP_H, this.Keys.ARROW_RIGHT)
.pause(50)
.setValue(TIME_INP_M, m.toString())
.waitForElementVisible(DIALOG_SUBMIT)
.click(DIALOG_SUBMIT)
.waitForElementNotPresent(DIALOG);
},
};

View file

@ -8,6 +8,8 @@ module.exports = {
return this.waitForElementVisible(ROUTER_WRAPPER)
.setValue('body', 'A')
.waitForElementVisible(ADD_TASK_GLOBAL_SEL)
.setValue(ADD_TASK_GLOBAL_SEL, taskName);
.setValue(ADD_TASK_GLOBAL_SEL, taskName.slice(0, -1))
.pause(200)
.sendKeys(ADD_TASK_GLOBAL_SEL, taskName.slice(-1));
},
};

View file

@ -7,7 +7,7 @@ export interface AddTaskWithReminderParams {
}
export interface NBrowser extends NightwatchAPI {
addTask: (taskTitle: string) => NBrowser;
addTask: (taskTitle: string, isSkipClose?: boolean) => NBrowser;
addTaskWithNewTag: (tagName: string) => NBrowser;
addNote: (noteTitle: string) => NBrowser;
draftTask: (taskTitle: string) => NBrowser;

View file

@ -1,52 +1,84 @@
import { NBrowser } from '../n-browser-interface';
import { cssSelectors, WORK_VIEW_URL } from '../e2e.const';
const AUTOCOMPLETE = 'mention-list';
const AUTOCOMPLETE_ITEM = `${AUTOCOMPLETE} .mention-active`;
const AUTOCOMPLETE_ITEM_TEXT = `${AUTOCOMPLETE_ITEM} .mention-item`;
const { EXPAND_TAG_BTN, READY_TO_WORK_BTN, TAGS } = cssSelectors;
const TAG = `${TAGS} div.tag`;
// const AUTOCOMPLETE = 'mention-list';
// const AUTOCOMPLETE_ITEM = `${AUTOCOMPLETE} .mention-active`;
// const AUTOCOMPLETE_ITEM_TEXT = `${AUTOCOMPLETE_ITEM} .mention-item`;
// const { EXPAND_TAG_BTN, READY_TO_WORK_BTN, TAGS } = cssSelectors;
// const TAG = `${TAGS} div.tag`;
const { READY_TO_WORK_BTN } = cssSelectors;
const CONFIRM_CREATE_TAG_BTN = `dialog-confirm button[e2e="confirmBtn"]`;
const BASIC_TAG_TITLE = 'task tag-list tag:last-of-type .tag-title';
module.exports = {
'@tags': ['task', 'short-syntax', 'autocomplete'],
'should add an autocomplete dropdown when using short syntax': (browser: NBrowser) => {
'should create a simple tag': (browser: NBrowser) => {
browser
.loadAppAndClickAwayWelcomeDialog(WORK_VIEW_URL)
.waitForElementVisible(READY_TO_WORK_BTN)
.draftTask('Test the presence of autocomplete component #')
.waitForElementPresent(AUTOCOMPLETE)
.assert.elementPresent(AUTOCOMPLETE)
.addTask('some task <3 #basicTag', true)
.waitForElementPresent(CONFIRM_CREATE_TAG_BTN)
.click(CONFIRM_CREATE_TAG_BTN)
.waitForElementPresent(BASIC_TAG_TITLE)
.assert.elementPresent(BASIC_TAG_TITLE)
.assert.textContains(BASIC_TAG_TITLE, 'basicTag')
.end();
},
'should have at least one tag in the autocomplete dropdown': (browser: NBrowser) => {
const newTagTitle = 'angular';
browser
.loadAppAndClickAwayWelcomeDialog()
.waitForElementVisible(EXPAND_TAG_BTN)
.click(EXPAND_TAG_BTN)
.execute(
(tagSelector) => {
const tagElem = document.querySelector(tagSelector);
if (!tagElem) {
return false;
}
return true;
},
[TAG],
(result) => {
console.log('Has at least one tag', result.value);
if (!result.value) {
browser.addTaskWithNewTag(newTagTitle);
}
},
);
browser
.draftTask('Test the presence of tag in autcomplete #')
.waitForElementPresent(AUTOCOMPLETE)
.assert.visible(AUTOCOMPLETE_ITEM)
.expect.element(AUTOCOMPLETE_ITEM_TEXT)
.text.to.match(/.+/g);
browser.end();
},
// TODO make these work again
// 'should add an autocomplete dropdown when using short syntax': (browser: NBrowser) => {
// browser
// .loadAppAndClickAwayWelcomeDialog(WORK_VIEW_URL)
// .waitForElementVisible(READY_TO_WORK_BTN)
//
// .addTask('some task <3 #basicTag', true)
// .waitForElementPresent(CONFIRM_CREATE_TAG_BTN)
// .click(CONFIRM_CREATE_TAG_BTN)
// .waitForElementPresent(BASIC_TAG_TITLE)
//
// .draftTask('Test the presence of autocomplete component #')
// .waitForElementPresent(AUTOCOMPLETE)
// .assert.elementPresent(AUTOCOMPLETE)
// .end();
// },
//
// 'should have at least one tag in the autocomplete dropdown': (browser: NBrowser) => {
// const newTagTitle = 'angular';
// browser
// .loadAppAndClickAwayWelcomeDialog()
//
// .addTask('some task <3 #basicTag', true)
// .waitForElementPresent(CONFIRM_CREATE_TAG_BTN)
// .click(CONFIRM_CREATE_TAG_BTN)
// .waitForElementPresent(BASIC_TAG_TITLE)
//
// .waitForElementVisible(EXPAND_TAG_BTN)
// .click(EXPAND_TAG_BTN)
// .execute(
// (tagSelector) => {
// const tagElem = document.querySelector(tagSelector);
// if (!tagElem) {
// return false;
// }
// return true;
// },
// [TAG],
// (result) => {
// console.log('Has at least one tag', result.value);
// if (!result.value) {
// browser.addTaskWithNewTag(newTagTitle);
// }
// },
// );
// browser
// .draftTask('Test the presence of tag in autcomplete #')
// .waitForElementPresent(AUTOCOMPLETE)
// .assert.visible(AUTOCOMPLETE_ITEM)
// .expect.element(AUTOCOMPLETE_ITEM_TEXT)
// .text.to.match(/.+/g);
// browser.end();
// },
};

View file

@ -96,6 +96,8 @@ module.exports = {
.click(FINISH_DAY_BTN)
.waitForElementPresent(DAILY_SUMMARY)
// wait a bit for route to be changed
.pause(500)
.assert.urlEquals(`${BASE}/#/project/INBOX/daily-summary`)
.assert.not.elementPresent(GLOBAL_ERROR_ALERT)
.end(),

28218
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -10,7 +10,7 @@
<button
tabindex="1"
(click)="close(false)"
class="btn btn-primary submit-button"
class="btn btn-primary"
mat-button
type="button"
>
@ -21,8 +21,10 @@
<button
tabindex="2"
(click)="close(true)"
e2e="confirmBtn"
class="btn btn-primary submit-button"
color="primary"
type="button"
mat-stroked-button
>
<mat-icon>check</mat-icon>