test: course creation flow

This commit is contained in:
Jannat Patel
2023-04-03 15:19:54 +05:30
parent 690a86bb69
commit 92a8ce6ef4
6 changed files with 218 additions and 7 deletions

View File

@@ -5,10 +5,96 @@ describe("Course Creation", () => {
});
it("creates a new course", () => {
cy.get("button").contains("Create a Course").click();
cy.get("button").contains("Add Tag").click();
// Create a course
cy.get("a.btn").contains("Create a Course").click();
cy.wait(1000);
cy.url().should("include", "/courses/new-course");
cy.button("Add Tag").click();
cy.get(".course-card-pills").type("Test");
cy.get("#title").type("Test Course");
cy.get("#intro").type("Test Course Short Introduction");
cy.get("#video-link").type("-LPmw2Znl2c");
cy.get("#published").check();
cy.get("#description").type("Test Course Description");
cy.wait(1000);
cy.button("Save Course Details").click();
// Add Cha
cy.wait(3000);
cy.button("New Chapter").click();
cy.get(".new-chapter .chapter-title-main").type("Test Chapter");
cy.get(".new-chapter .chapter-description").type(
"Test Chapter Description"
);
cy.get(".new-chapter .btn-save-chapter").click();
// Add Lesson
cy.wait(3000);
cy.get(".chapter-parent .btn-lesson").click();
cy.wait(3000);
cy.get("#title").type("Test Lesson");
cy.get("#youtube").type("GoDtyItReto");
cy.get("#body").type("Test Lesson Content");
cy.wait(1000);
cy.get(".btn-lesson").click();
// View Course
cy.wait(3000);
cy.visit("/courses");
cy.get(".course-card-title:first").contains("Test Course");
cy.get(".course-card:first").click();
cy.url().should("include", "/courses/test-course");
cy.get("#title").contains("Test Course");
cy.get(".preview-video").should(
"have.attr",
"src",
"https://www.youtube.com/embed/-LPmw2Znl2c"
);
cy.get("#intro").contains("Test Course Short Introduction");
// View Chapter
cy.get(".chapter-title-main:first").contains("Test Chapter");
cy.get(".chapter-description:first").contains(
"Test Chapter Description"
);
cy.get(".lesson-info:first").contains("Test Lesson");
cy.get(".lesson-info:first").click();
// View Lesson
cy.wait(3000);
cy.url().should("include", "learn/1.1");
cy.get("#title").contains("Test Lesson");
cy.get(".lesson-video iframe").should(
"have.attr",
"src",
"https://www.youtube.com/embed/GoDtyItReto"
);
cy.get(".lesson-content-card").contains("Test Lesson Content");
// Add Discussion
cy.get(".reply").click();
cy.wait(500);
cy.get(".topic-title").type("Question Title");
cy.get(".comment-field").type(
"Question Content. This is a very long question. It contains more than once sentence. Its meant to be this long as this is a UI test."
);
cy.get(".submit-discussion").click();
// View Discussion
cy.wait(3000);
cy.get(".discussion-topic-title:first").contains("Question Title");
cy.get(".sidebar-parent:first").click();
cy.get(".reply-text").contains(
"Question Content. This is a very long question. It contains more than once sentence. Its meant to be this long as this is a UI test."
);
cy.get(".comment-field:visible").type(
"This is a reply to the previous comment. Its not that long."
);
cy.get(".submit-discussion:visible").click();
cy.wait(1000);
cy.get(".reply-text:last p").contains(
"This is a reply to the previous comment. Its not that long."
);
});
});

View File

@@ -42,6 +42,10 @@ Cypress.Commands.add("button", (text) => {
return cy.get(`button:contains("${text}")`);
});
Cypress.Commands.add("link", (text) => {
return cy.get(`a:contains("${text}")`);
});
Cypress.Commands.add("iconButton", (text) => {
return cy.get(`button[aria-label="${text}"]`);
});