diff --git a/cypress/e2e/course_creation.cy.js b/cypress/e2e/course_creation.cy.js index 28b97041..2530b3db 100644 --- a/cypress/e2e/course_creation.cy.js +++ b/cypress/e2e/course_creation.cy.js @@ -1,12 +1,15 @@ describe("Course Creation", () => { it("creates a new course", () => { cy.login(); - cy.wait(1000); + cy.wait(500); cy.visit("/lms/courses"); + // Close onboarding modal + cy.closeOnboardingModal(); + // Create a course cy.get("button").contains("New").click(); - cy.wait(1000); + cy.wait(500); cy.url().should("include", "/courses/new/edit"); cy.get("label").contains("Title").type("Test Course"); @@ -96,7 +99,8 @@ describe("Course Creation", () => { // View Course cy.wait(1000); cy.visit("/lms"); - cy.wait(500); + cy.closeOnboardingModal(); + cy.url().should("include", "/lms/courses"); cy.get(".grid a:first").within(() => { cy.get("div").contains("Test Course"); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index c8dd5cd5..d32be479 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -25,6 +25,7 @@ // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) import "cypress-file-upload"; +import "cypress-real-events"; Cypress.Commands.add("login", (email, password) => { if (!email) { @@ -68,3 +69,11 @@ Cypress.Commands.add("paste", { prevSubject: true }, (subject, text) => { element.dispatchEvent(event); }); }); + +Cypress.Commands.add("closeOnboardingModal", () => { + cy.wait(500); + cy.get('[class*="z-50"]') + .find('button:has(svg[class*="feather-x"])') + .realClick(); + cy.wait(1000); +}); diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 7bdb98c6..585aa545 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -47,11 +47,14 @@ declare module 'vue' { Discussions: typeof import('./src/components/Discussions.vue')['default'] EditCoverImage: typeof import('./src/components/Modals/EditCoverImage.vue')['default'] EditProfile: typeof import('./src/components/Modals/EditProfile.vue')['default'] + EmailTemplateModal: typeof import('./src/components/Modals/EmailTemplateModal.vue')['default'] + EmailTemplates: typeof import('./src/components/EmailTemplates.vue')['default'] EmptyState: typeof import('./src/components/EmptyState.vue')['default'] EvaluationModal: typeof import('./src/components/Modals/EvaluationModal.vue')['default'] Evaluators: typeof import('./src/components/Evaluators.vue')['default'] Event: typeof import('./src/components/Modals/Event.vue')['default'] ExplanationVideos: typeof import('./src/components/Modals/ExplanationVideos.vue')['default'] + FeedbackModal: typeof import('./src/components/Modals/FeedbackModal.vue')['default'] FrappeCloudIcon: typeof import('./src/components/Icons/FrappeCloudIcon.vue')['default'] IconPicker: typeof import('./src/components/Controls/IconPicker.vue')['default'] IndicatorIcon: typeof import('./src/components/Icons/IndicatorIcon.vue')['default'] diff --git a/frontend/package.json b/frontend/package.json index 0a45681d..bb7a91da 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,7 +27,7 @@ "codemirror-editor-vue3": "^2.8.0", "dayjs": "^1.11.6", "feather-icons": "^4.28.0", - "frappe-ui": "^0.1.143", + "frappe-ui": "^0.1.147", "highlight.js": "^11.11.1", "lucide-vue-next": "^0.383.0", "markdown-it": "^14.0.0", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 6097fe09..e13f2078 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -9,18 +9,14 @@ diff --git a/frontend/src/components/BrandSettings.vue b/frontend/src/components/BrandSettings.vue index 56b9abe3..f988073b 100644 --- a/frontend/src/components/BrandSettings.vue +++ b/frontend/src/components/BrandSettings.vue @@ -18,11 +18,11 @@
-
- -
+
+
+
diff --git a/frontend/src/components/Categories.vue b/frontend/src/components/Categories.vue index 2f5d99e8..905839a1 100644 --- a/frontend/src/components/Categories.vue +++ b/frontend/src/components/Categories.vue @@ -1,16 +1,32 @@