Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,25 @@ jobs:
file: version.yml
version: version

## Run Cypress e2e tests ##
- name: Run e2e tests
## Run Cypress e2e tests (full mode) ##
- name: Run e2e tests (full mode)
uses: cypress-io/github-action@v6
with:
start: npm run dev
command: npx cypress run --env coverage=true
wait-on: "http://localhost:5173"
command: npx cypress run --env coverage=true --spec "cypress/e2e/{full-mode,shared}/**/*.cy.{js,jsx,ts,tsx}"
env:
REACT_APP_FEES_ONLY: "false"

## Run Cypress e2e tests (fees-only mode) ##
- name: Run fees-only e2e tests
uses: cypress-io/github-action@v6
with:
start: npm run dev -- --port 5180
wait-on: "http://localhost:5180"
command: npx cypress run --env coverage=true --spec "cypress/e2e/fees-only/**/*.cy.{js,jsx,ts,tsx}" --config baseUrl=http://localhost:5180
env:
REACT_APP_FEES_ONLY: "true"

## Generate Lcov report ##
- name: Generate Lcov report
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/fees_only_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Test fees-only (temp)

on:
push:
branches:
- "*"
workflow_dispatch:

env:
REACT_APP_TEST_STUDENT1_PASSWORD: ${{ secrets.STUDENT1_PASSWORD }}
REACT_APP_TEST_TEACHER1_PASSWORD: ${{ secrets.TEACHER1_PASSWORD }}
REACT_APP_TEST_MANAGER1_PASSWORD: ${{ secrets.MANAGER1_PASSWORD }}
REACT_APP_TEST_MONITOR1_PASSWORD: ${{ secrets.MONITOR1_PASSWORD }}
REACT_APP_API_URL: ${{secrets.REACT_APP_API_URL}}
REACT_APP_AWS_REGION: eu-west-3
REACT_APP_USERPOOL_ID: ${{ vars.PREPROD_USERPOOL_ID }}
REACT_APP_WEBCLIENT_ID: ${{ vars.PREPROD_WEBCLIENT_ID }}
REACT_APP_OAUTH_DOMAIN: ${{ vars.PREPROD_OAUTH_DOMAIN }}
WAF_JS_API_URL: ${{secrets.WAF_JS_API_URL}}
WAF_INTEGRATION_API_KEY: ${{secrets.WAF_INTEGRATION_API_KEY}}
REACT_APP_CASDOOR_SDK_SERVER_URL: ${{ secrets.REACT_APP_CASDOOR_SDK_SERVER_URL }}
REACT_APP_CASDOOR_SDK_CLIENT_ID: ${{ secrets.REACT_APP_CASDOOR_SDK_CLIENT_ID }}
REACT_APP_CASDOOR_SDK_APP_NAME: ${{ secrets.REACT_APP_CASDOOR_SDK_APP_NAME }}
REACT_APP_CASDOOR_SDK_ORGANIZATION_NAME: ${{ secrets.REACT_APP_CASDOOR_SDK_ORGANIZATION_NAME }}
REACT_APP_CASDOOR_SDK_REDIRECT_PATH: ${{ secrets.REACT_APP_CASDOOR_SDK_REDIRECT_PATH }}

jobs:
test-fees-only:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18.19.0

## Connect to Numer Private Codeartifact Repository ##
- name: Configure prod AWS credentials
uses: aws-actions/configure-aws-credentials@v4.0.1
with:
aws-access-key-id: ${{ secrets.PROD_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.PROD_AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.REACT_APP_AWS_REGION }}
- run: sh ./initNpmrc.sh hei-store npm-hei-school 088312068315

## Connect to Numer Private Codeartifact Repository ##
- name: Configure preprod AWS credentials
uses: aws-actions/configure-aws-credentials@v4.0.1
with:
aws-access-key-id: ${{ secrets.PREPROD_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.PREPROD_AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.REACT_APP_AWS_REGION }}
unset-current-credentials: true
- run: sh ./initNpmrc.sh hei-store npm-hei-lab 057045785189

- name: Install npm dependencies
run: npm ci

- name: Run fees-only e2e tests
uses: cypress-io/github-action@v6
with:
start: npm run dev
wait-on: "http://localhost:5173"
command: npx cypress run --spec "cypress/e2e/fees-only/**/*.cy.{js,jsx,ts,tsx}"
env:
REACT_APP_FEES_ONLY: "true"
38 changes: 38 additions & 0 deletions cypress/e2e/fees-only/fees-only.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
describe("Fees-only mode - Manager", () => {
beforeEach(() => {
cy.mockLogin({role: "MANAGER"});
cy.visit("/profile");
});

it("shows only fees-related items in the menu", () => {
cy.get("#ha-menu")
.should("contain", "Étudiants")
.and("contain", "Transactions")
.and("contain", "Frais")
.and("not.contain", "Enseignants");
});

it("can access the fees page", () => {
cy.get('[href="/fees"]').click();
cy.url().should("include", "/fees");
});

it("does not render restricted routes, even via direct URL", () => {
cy.visit("/teachers");
cy.get('[data-testid="teachers-list"]').should("not.exist");
});
});

describe("Fees-only mode - Student", () => {
beforeEach(() => {
cy.mockLogin({role: "STUDENT"});
cy.visit("/profile");
});

it("shows only the fees link in the menu", () => {
cy.get("#ha-menu")
.should("contain", "Frais")
.and("not.contain", "Enseignants")
.and("not.contain", "Étudiants");
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ import {
newOtherrDoc,
otherDocsMocks,
transcriptsMock,
} from "../fixtures/api_mocks/docs-mocks";
import {monitor1Mock} from "../fixtures/api_mocks/monitors-mock";
import {student1Mock} from "../fixtures/api_mocks/students-mocks";
import {teacher1Mock, teachersMock} from "../fixtures/api_mocks/teachers-mocks";
} from "../../fixtures/api_mocks/docs-mocks";
import {monitor1Mock} from "../../fixtures/api_mocks/monitors-mock";
import {student1Mock} from "../../fixtures/api_mocks/students-mocks";
import {
teacher1Mock,
teachersMock,
} from "../../fixtures/api_mocks/teachers-mocks";

describe("Admin Teacher Doc", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import {StaffMember, WhoamiRoleEnum} from "@haapi-b0fc7615/typescript-client";
import {lettersMocks, statsMocks} from "../fixtures/api_mocks/letters-mocks";
import {lettersMocks, statsMocks} from "../../fixtures/api_mocks/letters-mocks";
import {
staffCreatedMock,
staffMock,
staffUpdatedMock,
} from "../fixtures/api_mocks/staffs-mock";
} from "../../fixtures/api_mocks/staffs-mock";

describe("Admin Staff", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/// <reference types="cypress" />

import {WhoamiRoleEnum} from "@haapi-b0fc7615/typescript-client";
import {advanceStatsMocks} from "../fixtures/api_mocks/advanceStats-mocks";
import {announcementsMock} from "../fixtures/api_mocks/announcement-mocks";
import {commentMocks} from "../fixtures/api_mocks/comment-mocks";
import {unpaidFeeMock} from "../fixtures/api_mocks/fees-mocks";
import {lettersMocks, statsMocks} from "../fixtures/api_mocks/letters-mocks";
import {studentsMock} from "../fixtures/api_mocks/students-mocks";
import {advanceStatsMocks} from "../../fixtures/api_mocks/advanceStats-mocks";
import {announcementsMock} from "../../fixtures/api_mocks/announcement-mocks";
import {commentMocks} from "../../fixtures/api_mocks/comment-mocks";
import {unpaidFeeMock} from "../../fixtures/api_mocks/fees-mocks";
import {lettersMocks, statsMocks} from "../../fixtures/api_mocks/letters-mocks";
import {studentsMock} from "../../fixtures/api_mocks/students-mocks";

const ITEM_PER_LIST = 12;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {student1Mock} from "../fixtures/api_mocks/students-mocks";
import {student1Mock} from "../../fixtures/api_mocks/students-mocks";

describe("Authentification", () => {
it("should lands on profile page if succeeds", () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import {student1Mock, studentsMock} from "../fixtures/api_mocks/students-mocks";
import {
student1Mock,
studentsMock,
} from "../../fixtures/api_mocks/students-mocks";
const MESSAGE_ERROR = "Échec de téléchargement. Veuillez réessayer";

describe("Student Ceritificate", () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {
commentMocks,
student1CommentMocks,
} from "../fixtures/api_mocks/comment-mocks";
import {student1Mock} from "../fixtures/api_mocks/students-mocks";
} from "../../fixtures/api_mocks/comment-mocks";
import {student1Mock} from "../../fixtures/api_mocks/students-mocks";

const ITEM_PER_LIST = 12;
const ITEM_PER_LIST2 = 13;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {formatDate} from "@/utils/date";
import {WhoamiRoleEnum} from "@haapi-b0fc7615/typescript-client";
import {corMock, corMock1} from "../fixtures/api_mocks/cor-mock";
import {studentsMock} from "../fixtures/api_mocks/students-mocks";
import {teachersMock} from "../fixtures/api_mocks/teachers-mocks";
import {corMock, corMock1} from "../../fixtures/api_mocks/cor-mock";
import {studentsMock} from "../../fixtures/api_mocks/students-mocks";
import {teachersMock} from "../../fixtures/api_mocks/teachers-mocks";

describe("Cor Manager", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import {
transcriptsMock,
workDoc1,
workDocsMocks,
} from "../fixtures/api_mocks/docs-mocks";
import {student1Mock, studentsMock} from "../fixtures/api_mocks/students-mocks";
} from "../../fixtures/api_mocks/docs-mocks";
import {
student1Mock,
studentsMock,
} from "../../fixtures/api_mocks/students-mocks";

describe("Manager.Work.Docs.Download", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import {EVENT_TYPE_VALUE} from "@/operations/events/utils";
import {courseMocks} from "../fixtures/api_mocks/course-mocks";
import {courseMocks} from "../../fixtures/api_mocks/course-mocks";
import {
event1mock,
eventparticipant1mock,
eventParticipantsMock,
eventsMock,
} from "../fixtures/api_mocks/event-mocks";
import {groupsMock} from "../fixtures/api_mocks/groups-mocks";
import {missingParticipantsMock} from "../fixtures/api_mocks/missing-participants-mock";
} from "../../fixtures/api_mocks/event-mocks";
import {groupsMock} from "../../fixtures/api_mocks/groups-mocks";
import {missingParticipantsMock} from "../../fixtures/api_mocks/missing-participants-mock";

describe("Manager.event", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import {
calendarMock,
nextcalendarMock,
} from "../fixtures/api_mocks/calendar-mock";
} from "../../fixtures/api_mocks/calendar-mock";
import {
event1mock,
eventparticipant1mock,
eventParticipantsMock,
eventsMock,
} from "../fixtures/api_mocks/event-mocks";
} from "../../fixtures/api_mocks/event-mocks";

describe("Student.event", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
eventparticipant1mock,
eventParticipantsMock,
eventsMock,
} from "../fixtures/api_mocks/event-mocks";
} from "../../fixtures/api_mocks/event-mocks";

describe("Teacher.event", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {formatDate} from "@/utils/date";
import {Exam} from "@haapi-b0fc7615/typescript-client";
import {examMocks, gradesMocks} from "../fixtures/api_mocks/exam-mocks";
import {examMocks, gradesMocks} from "../../fixtures/api_mocks/exam-mocks";

const baseExam: Exam = {
id: "exam-001",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import {formatDate} from "@/utils/date";
import {WhoamiRoleEnum} from "@haapi-b0fc7615/typescript-client";
import {courseMocks} from "../fixtures/api_mocks/course-mocks";
import {courseMocks} from "../../fixtures/api_mocks/course-mocks";
import {
courseAssignmentMocks,
examCreateMock,
examMocks,
examMocksfiltered,
} from "../fixtures/api_mocks/exam-mocks";
import {group1Mock, groupsMock} from "../fixtures/api_mocks/groups-mocks";
import {teachersMock} from "../fixtures/api_mocks/teachers-mocks";
} from "../../fixtures/api_mocks/exam-mocks";
import {group1Mock, groupsMock} from "../../fixtures/api_mocks/groups-mocks";
import {teachersMock} from "../../fixtures/api_mocks/teachers-mocks";

const pageAssertions = () => {
cy.contains("Liste des examens").should("be.visible");
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import {WhoamiRoleEnum} from "@haapi-b0fc7615/typescript-client";
import {getCourseStatusLabel} from "../../src/operations/grades/utils/constants";
import {getCourseStatusLabel} from "../../../src/operations/grades/utils/constants";
import {
courseResultsMock,
yearlyResultL2Mock,
yearlyResultL3Mock,
yearlyResultMock,
} from "../fixtures/api_mocks/grades-mocks";
import {monitor1Mock} from "../fixtures/api_mocks/monitors-mock";
import {studentLinkedToMonitorMock} from "../fixtures/api_mocks/students-mocks";
import {summaryResultMocks} from "../fixtures/api_mocks/summary-result-mocks";
} from "../../fixtures/api_mocks/grades-mocks";
import {monitor1Mock} from "../../fixtures/api_mocks/monitors-mock";
import {studentLinkedToMonitorMock} from "../../fixtures/api_mocks/students-mocks";
import {summaryResultMocks} from "../../fixtures/api_mocks/summary-result-mocks";

describe("All View", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import {
yearlyResultL2Mock,
yearlyResultL3Mock,
yearlyResultMock,
} from "../fixtures/api_mocks/grades-mocks";
import {monitor1Mock} from "../fixtures/api_mocks/monitors-mock";
import {studentLinkedToMonitorMock} from "../fixtures/api_mocks/students-mocks";
} from "../../fixtures/api_mocks/grades-mocks";
import {monitor1Mock} from "../../fixtures/api_mocks/monitors-mock";
import {studentLinkedToMonitorMock} from "../../fixtures/api_mocks/students-mocks";

const goToStudentGrades = () => {
cy.intercept(
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import {
event1mock,
eventParticipantsMock,
} from "../fixtures/api_mocks/event-mocks";
import {newLetter} from "../fixtures/api_mocks/letters-mocks";
import {student1Mock} from "../fixtures/api_mocks/students-mocks";
} from "../../fixtures/api_mocks/event-mocks";
import {newLetter} from "../../fixtures/api_mocks/letters-mocks";
import {student1Mock} from "../../fixtures/api_mocks/students-mocks";

describe("Letter.event", () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import {
newLetter2,
statsMocks,
student1LettersMocks,
} from "../fixtures/api_mocks/letters-mocks";
import {student1Mock} from "../fixtures/api_mocks/students-mocks";
} from "../../fixtures/api_mocks/letters-mocks";
import {student1Mock} from "../../fixtures/api_mocks/students-mocks";

const ITEM_PER_LIST = 12;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ import {
newLetter,
student1LettersMocks,
teacher1LettersMocks,
} from "../fixtures/api_mocks/letters-mocks";
import {student1Mock, studentsMock} from "../fixtures/api_mocks/students-mocks";
import {teacher1Mock} from "../fixtures/api_mocks/teachers-mocks";
} from "../../fixtures/api_mocks/letters-mocks";
import {
student1Mock,
studentsMock,
} from "../../fixtures/api_mocks/students-mocks";
import {teacher1Mock} from "../../fixtures/api_mocks/teachers-mocks";

const ITEM_PER_LIST = 12;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
announcementCreate,
announcementsMock,
createdAnnouncement,
} from "../fixtures/api_mocks/announcement-mocks";
} from "../../fixtures/api_mocks/announcement-mocks";

describe("Manager announcements", () => {
beforeEach(() => {
Expand Down
Loading