mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-29 00:20:04 +01:00
366 lines
11 KiB
JavaScript
366 lines
11 KiB
JavaScript
/*
|
|
This file is part of the Notesnook project (https://notesnook.com/)
|
|
|
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import { notesnook } from "../test.ids";
|
|
import {
|
|
tapById,
|
|
elementById,
|
|
visibleByText,
|
|
tapByText,
|
|
createNote,
|
|
prepare,
|
|
notVisibleById,
|
|
navigate,
|
|
elementByText,
|
|
sleep,
|
|
notVisibleByText,
|
|
visibleById
|
|
} from "./utils";
|
|
|
|
async function createNotebook(
|
|
title = "Notebook 1",
|
|
description = true,
|
|
topic = true,
|
|
topicCount = 1
|
|
) {
|
|
await tapByText("Add your first notebook");
|
|
await elementById(notesnook.ids.dialogs.notebook.inputs.title).typeText(
|
|
title
|
|
);
|
|
if (description) {
|
|
await elementById(
|
|
notesnook.ids.dialogs.notebook.inputs.description
|
|
).typeText(`Description of ${title}`);
|
|
}
|
|
if (topic) {
|
|
for (let i = 1; i <= topicCount; i++) {
|
|
await elementById(notesnook.ids.dialogs.notebook.inputs.topic).typeText(
|
|
i === 1 ? "Topic" : "Topic " + i
|
|
);
|
|
await tapById("topic-add-button");
|
|
}
|
|
}
|
|
await tapByText("Save");
|
|
await sleep(500);
|
|
}
|
|
|
|
// async function addTopic(title = "Topic") {
|
|
// await tapById(notesnook.buttons.add);
|
|
// await elementById("input-title").typeText(title);
|
|
// await tapByText("Add");
|
|
// await sleep(500);
|
|
// }
|
|
|
|
describe("NOTEBOOKS", () => {
|
|
it("Create a notebook with title only", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", false, false);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
});
|
|
|
|
it("Create a notebook title & description", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", true, false);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
});
|
|
|
|
it("Create a notebook with description and topics", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", false, false);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
});
|
|
|
|
it("Create a notebook, add topic, move notes", async () => {
|
|
await prepare();
|
|
let note = await createNote();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", true, true);
|
|
await sleep(500);
|
|
await tapByText("Topic");
|
|
await sleep(500);
|
|
await tapById("listitem.select");
|
|
await tapByText("Move selected notes");
|
|
await sleep(500);
|
|
await tapByText("Topic");
|
|
await sleep(500);
|
|
await visibleByText(note.body);
|
|
});
|
|
|
|
it("Add new topic to notebook", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", true, false);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await tapByText("Notebook 1");
|
|
await tapById("add-topic-button");
|
|
await elementById("input-title").typeText("Topic");
|
|
await tapByText("Add");
|
|
await sleep(500);
|
|
});
|
|
|
|
it("Edit topic", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", true, true);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await tapByText("Notebook 1");
|
|
await sleep(300);
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Edit topic");
|
|
await elementById("input-title").typeText(" (edited)");
|
|
await tapByText("Save");
|
|
});
|
|
|
|
it("Add new note to topic", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", true, true);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await tapByText("Topic");
|
|
await createNote();
|
|
});
|
|
|
|
it("Remove note from topic", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await createNotebook("Notebook 1", true, true);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await tapByText("Topic");
|
|
let note = await createNote();
|
|
await elementByText(note.body).longPress();
|
|
await tapById("select-minus");
|
|
await notVisibleById(note.title);
|
|
});
|
|
|
|
it("Add/Remove note to notebook from home", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", true, true, 3);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await navigate("Notes");
|
|
await createNote();
|
|
console.log("ADD TO A SINGLE TOPIC");
|
|
await tapById(notesnook.listitem.menu);
|
|
await tapById("icon-notebooks");
|
|
await sleep(500);
|
|
await tapByText("Notebook 1");
|
|
await tapByText("Topic");
|
|
await tapByText("Save");
|
|
await sleep(300);
|
|
await visibleByText("Topic");
|
|
console.log("MOVE FROM ONE TOPIC TO ANOTHER");
|
|
await tapById(notesnook.listitem.menu);
|
|
await tapById("icon-notebooks");
|
|
await tapByText("Notebook 1");
|
|
await tapByText("Topic 2");
|
|
await tapByText("Save");
|
|
await visibleByText("Topic 2");
|
|
console.log("REMOVE FROM TOPIC");
|
|
await tapById(notesnook.listitem.menu);
|
|
await tapById("icon-notebooks");
|
|
await tapByText("Notebook 1");
|
|
await tapByText("Topic 2");
|
|
await tapByText("Save");
|
|
await sleep(300);
|
|
await notVisibleByText("Topic 2");
|
|
console.log("MOVE TO MULTIPLE TOPICS");
|
|
await tapById(notesnook.listitem.menu);
|
|
await tapById("icon-notebooks");
|
|
await tapByText("Notebook 1");
|
|
await elementByText("Topic").longPress();
|
|
await visibleByText("Reset selection");
|
|
await tapByText("Topic 2");
|
|
await tapByText("Topic 3");
|
|
await tapByText("Save");
|
|
await sleep(300);
|
|
await tapById(notesnook.listitem.menu);
|
|
await visibleByText("Topic");
|
|
await visibleByText("Topic 2");
|
|
await visibleByText("Topic 3");
|
|
});
|
|
|
|
it("Edit notebook title, description and add a topic", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
await sleep(500);
|
|
await createNotebook();
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Edit notebook");
|
|
await sleep(500);
|
|
await elementById(notesnook.ids.dialogs.notebook.inputs.title).typeText(
|
|
" (Edited)"
|
|
);
|
|
await elementById(
|
|
notesnook.ids.dialogs.notebook.inputs.description
|
|
).clearText();
|
|
await elementById(
|
|
notesnook.ids.dialogs.notebook.inputs.description
|
|
).typeText("Description of Notebook 1 (Edited)");
|
|
await elementById(notesnook.ids.dialogs.notebook.inputs.topic).typeText(
|
|
"Topic 2"
|
|
);
|
|
await tapById("topic-add-button");
|
|
await tapByText("Save");
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1 (Edited)");
|
|
await visibleByText("Description of Notebook 1 (Edited)");
|
|
await visibleByText("Topic 2");
|
|
});
|
|
|
|
it("Move notebook to trash", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", false, false);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Move to trash");
|
|
await sleep(2000);
|
|
await tapByText("Delete");
|
|
await sleep(4000);
|
|
await navigate("Trash");
|
|
await visibleByText("Notebook 1");
|
|
});
|
|
|
|
it("Move notebook to trash with notes", async () => {
|
|
await prepare();
|
|
let note = await createNote();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", false, true);
|
|
await sleep(500);
|
|
await tapByText("Topic");
|
|
await tapById("listitem.select");
|
|
await tapByText("Move selected notes");
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Move to trash");
|
|
await sleep(2000);
|
|
await tapByText("Move all notes in this notebook to trash");
|
|
await sleep(500);
|
|
await tapByText("Delete");
|
|
await sleep(4000);
|
|
await navigate("Trash");
|
|
await visibleByText("Notebook 1");
|
|
await visibleByText(note.body);
|
|
});
|
|
|
|
it("Move Topic to trash with notes", async () => {
|
|
await prepare();
|
|
let note = await createNote();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", false, true);
|
|
await sleep(500);
|
|
await tapByText("Topic");
|
|
await tapById("listitem.select");
|
|
await tapByText("Move selected notes");
|
|
await sleep(500);
|
|
await tapByText("Notebook 1");
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Delete topic");
|
|
await sleep(2000);
|
|
await tapByText("Move all notes in this topic to trash");
|
|
await sleep(500);
|
|
await tapByText("Delete");
|
|
await device.pressBack();
|
|
await sleep(4000);
|
|
await navigate("Trash");
|
|
await visibleByText(note.body);
|
|
});
|
|
|
|
it("Pin notebook to side menu", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1", false, false);
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await visibleByText("Notebook 1");
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Add Shortcut");
|
|
let menu = elementById(notesnook.ids.default.header.buttons.left);
|
|
await menu.tap();
|
|
await visibleByText("Notebook 1");
|
|
});
|
|
|
|
it("Pin topic to side menu", async () => {
|
|
await prepare();
|
|
await navigate("Notebooks");
|
|
|
|
await sleep(500);
|
|
await createNotebook("Notebook 1");
|
|
await sleep(500);
|
|
await device.pressBack();
|
|
await sleep(500);
|
|
await tapByText("Notebook 1");
|
|
await tapById(notesnook.ids.notebook.menu);
|
|
await tapByText("Add Shortcut");
|
|
let menu = elementById(notesnook.ids.default.header.buttons.left);
|
|
await menu.tap();
|
|
await menu.tap();
|
|
await visibleByText("Topic");
|
|
});
|
|
});
|