Skip to content

Commit

Permalink
Cypress tests for File Uploads
Browse files Browse the repository at this point in the history
  • Loading branch information
rajku-dev committed Feb 22, 2025
1 parent d58936d commit 95e71af
Show file tree
Hide file tree
Showing 9 changed files with 423 additions and 2 deletions.
170 changes: 170 additions & 0 deletions cypress/e2e/patient_spec/patient_files.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
import { PatientEncounter } from "@/pageObject/Patients/PatientEncounter";
import { PatientFiles } from "@/pageObject/Patients/PatientFiles";
import { FacilityCreation } from "@/pageObject/facility/FacilityCreation";

const facilityCreation = new FacilityCreation();
const patientEncounter = new PatientEncounter();
const patientFiles = new PatientFiles();

describe("Patient Files", () => {
beforeEach(() => {
cy.loginByApi("nurse");
cy.visit("/");
facilityCreation.selectFacility("PHC Angamaly");
patientEncounter
.navigateToEncounters()
.openFirstEncounterDetails()
.clickPatientDetailsButton();
patientFiles.clickFilesTab();
});

const validationMessage = "Please give a name for the file";
const fileUploadSuccessToast = "File Uploaded Successfully";
const fileArchiveSuccessToast = "File archived successfully";
const fileRenameSuccessToast = "File name changed successfully";
const fileDownloadingSuccessToast = "Downloading file...";
const newFileName = "Renamed Cypress File1";
const newFileDisplayName = "Renamed Cypress File1.png";
const archiveReason = "Cypress Archive Reason";

// Audio File Upload Setup

const audioFileName = "Cypress Audio Test";
const audioDisplayName = audioFileName + ".mp3";

// Single File Upload Setup

const fileName = "sample_img1.png";
const inputFileName = "Cypress Test File Upload";
const fileDisplayName = inputFileName + ".png";
const filePath = (fileName: string) => `cypress/fixtures/${fileName}`;

// Multiple Files Upload Setup

const fileNames = ["sample_img1.png", "sample_img2.png", "sample_file.xlsx"];
const inputFileNames = [
"Cypress Image Test 1",
"Cypress Image Test 2",
"Cypress File Test 3",
];
const fileDisplayNames = [
"Cypress Image Test 1.png",
"Cypress Image Test 2.png",
"Cypress File Test 3.xlsx",
];
const filePaths = (fileNames: string[]) =>
fileNames.map((file) => `cypress/fixtures/${file}`);

// Tests for single and multiple file uploads, rename, download and archive

it("Add a new patient file", () => {
patientFiles
.clickAddFilesButton()
.uploadSingleFile(filePath(fileName))
.clickUploadFilesButton()
.verifyValidationErrors(validationMessage)
.fillSingleFileName(inputFileName)
.interceptFileUploadRequest()
.clickUploadFilesButton()
.verifyFileUploadApiCall()
.verifySingleFileUploadSuccess(fileUploadSuccessToast)
.verifyFilesAdded([fileDisplayName]);
});

it("Add multiple patient files", () => {
patientFiles
.clickAddFilesButton()
.uploadMultipleFiles(filePaths(fileNames))
.clickUploadFilesButton()
.verifyValidationErrors(validationMessage)
.fillMultipleFileNames(inputFileNames)
.interceptFileUploadRequest()
.clickUploadFilesButton()
.verifyFileUploadApiCall()
.verifyMultipleFileUploadSuccess(fileUploadSuccessToast)
.verifyFilesAdded(fileDisplayNames);
});

it("Record an Audio and download", () => {
patientFiles
.clickAddFilesButton()
.clickRecordAudioButton()
.startRecordingAudio()
.stopRecordingAudio()

// Test Cancel Audio Button

.clickCancelAudioButton()
.clickFilesTab()
.clickAddFilesButton()

// Test Start Again Button

.clickRecordAudioButton()
.startRecordingAudio()
.stopRecordingAudio()
.clickStartAgainButton()

// Record and Upload Audio File

.stopRecordingAudio()
.clickSaveAudioButton()
.clickUploadFilesButton()
.verifyValidationErrors(validationMessage)
.fillSingleFileName(audioFileName)
.interceptFileUploadRequest()
.clickUploadFilesButton()
.verifyFileUploadApiCall()
.verifySingleFileUploadSuccess(fileUploadSuccessToast)
.filterActiveFiles()
.verifyFilesAdded([audioDisplayName])

// Download Audio file

.clickFileDetailsButton(audioDisplayName)
.clickDownloadFile()
.verifySingleFileUploadSuccess(fileDownloadingSuccessToast);
});

it("File Modification, Rename and Archive", () => {
// Upload a new file

patientFiles
.clickAddFilesButton()
.uploadSingleFile(filePath(fileName))
.clickUploadFilesButton()
.verifyValidationErrors(validationMessage)
.fillSingleFileName(inputFileName)
.interceptFileUploadRequest()
.clickUploadFilesButton()
.verifyFileUploadApiCall()
.verifySingleFileUploadSuccess(fileUploadSuccessToast)
.verifyFilesAdded([fileDisplayName])

// Rename the file

.clickFileDetailsButton(fileDisplayName)
.clickRenameOption()
.fillNewFileName(newFileName)
.interceptFileRenameRequest()
.clickProceedButton()
.verifyFileRenameApiCall()
.verifySingleFileUploadSuccess(fileRenameSuccessToast)
.verifyFilesAdded([newFileDisplayName])

// Archive the file

.clickFileDetailsButton(newFileDisplayName)
.clickArchiveOption()
.fillArchiveReason(archiveReason)
.interceptFileArchiveRequest()
.clickProceedButton()
.verifyFileArchiveApiCall()
.verifySingleFileUploadSuccess(fileArchiveSuccessToast)
.filterArchivedFiles()
.clickViewFile(newFileDisplayName)
.verifyArchiveReason(archiveReason);
});

// Cypress test for Convert to PDF
});
Binary file added cypress/fixtures/sample_file.xlsx
Binary file not shown.
Binary file added cypress/fixtures/sample_img1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cypress/fixtures/sample_img2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 95e71af

Please sign in to comment.