exports.HomePage = class HomePage { constructor(page) { this.page = page; // welcome this.createCollectionSelector = page.locator('#create-collection'); this.addCollectionSelector = page.locator('#add-collection'); this.importCollectionSelector = page.locator('#import-collection'); this.loadSampleCollectionSelector = page.locator('#load-sample-collection'); // sample collection this.loadSampleCollectionSuccessToast = page.getByText('Sample Collection loaded successfully'); this.sampleCollectionSelector = page.locator('#sidebar-collection-name'); this.getUsersSelector = page.getByText('Users'); this.getSingleUserSelector = page.getByText('Single User'); this.getUserNotFoundSelector = page.getByText('User Not Found'); this.postCreateSelector = page.getByText('Create'); this.putUpdateSelector = page.getByText('Update'); // request panel this.sendRequestButton = page.locator('#send-request'); this.statusRequestSuccess = page.getByText('200 OK'); this.statusRequestNotFound = page.getByText('404 Not Found'); this.statusRequestCreated = page.getByText('201 Created'); // create collection this.collectionNameField = page.locator('#collection-name'); this.submitButton = page.locator(`button[type='submit']`); this.createNewCollectionSuccessToast = page.getByText('Collection created'); this.createNewTab = page.locator('#create-new-tab'); this.requestNameField = page.locator('input[name="requestName"]'); this.methodName = page.locator('#create-new-request-method').first(); this.requestUrlField = page.locator('#request-url'); this.networkErrorToast = page.getByText('Network Error'); } async open() { await this.page.goto('/'); } async loadSampleCollection() { await this.loadSampleCollectionSelector.click(); } async getUsers() { await this.sampleCollectionSelector.click(); await this.getUsersSelector.click(); await this.sendRequestButton.click(); } async getSingleUser() { await this.getSingleUserSelector.click(); await this.sendRequestButton.click(); } async getUserNotFound() { await this.getUserNotFoundSelector.click(); await this.sendRequestButton.click(); } async createUser() { await this.postCreateSelector.click(); await this.sendRequestButton.click(); } async updateUser() { await this.putUpdateSelector.click(); await this.sendRequestButton.click(); } async createNewCollection(collectionName) { await this.createCollectionSelector.click(); await this.collectionNameField.fill(collectionName); await this.submitButton.click(); } async createNewRequest(name, method, endpoint) { await this.createNewTab.click(); await this.requestNameField.fill(name); await this.methodName.click(); await this.page.click(`text=${method}`); await this.requestUrlField.fill(endpoint); await this.submitButton.click(); await this.sendRequestButton.click(); } };