You are on page 1of 3

Evaluation

QA Engineer - Code

The goal of this project is to verify you have the technical knowledge required to this job position. You
will have to automate an e2e test on the sign-in, sign-up pages and the login endpoint response.

Problem Specification

Membrane Cypress Challenge

Prerequisite: node.js updated

Instructions

1. Create a folder ‘membrane-demo’.


2. Inside newly created ‘membrane-demo’ folder initialize node project and install
cypress.
3. Inside project open cypress window.
4. Update `membrane-demo/cypress.json`. Add the necessary code to disable web
security for Chrome Browser.
5. Under `membrane-demo/cypress/integration` create these 3 files.
a. sign_in.example.spec.js
b. sign_up.example.spec.js
c. apis.example.spec.js
6. On sign_in.example.spec.js create the test cases to validate the following
a. On demo.membrane.trade/sign-in static elements
i. Secure url
ii. Our membrane logo and title
iii. “Sign In” text on header
iv. “Email” field text
v. “Password” field text
vi. Eye (svg) element at the end on the password field
vii. Sign Up link
viii. Forgot Password Link
b. Functionality
i. Validate inactive “Next” button
ii. Validate error message “This field is required” on empty email and
password
iii. Fill user with an invalid email address and validate “Invalid email
format”
iv. Fill both user and password and validate active “Next” button
v. Click on next Button and validate the “Wrong email or password, try
again.” on popup message

7. On sign_up.example.spec.js create the test cases to validate the following


(based on previous item use the same perspective)
a. On demo.membrane.trade/sign-up static elements
i. (validate any field text and elements you think is important)
b. Functionality
i. Validate inactive “Next” button
ii. Validate error messages “This field is required” on empty fields
iii. Validate “Invalid email format”
iv. Fill all items with REAL data and validate active “Next” button
v. Click on “Next” Button
c. Plus !!! (optional)
(if you used a real email, you can verify the 2FA by your own and
complete the sign up process)
i. After created your account you could run step 6 again using your real
data to validate the sign-in process successfully

8. On api_login.example.spec.js create the test cases to validate the following


a. On demo.membrane.trade/sign-in page
i. Verify the “login” endpoint using cypress request with INVALID data 1.
Should return HTTP status code 200 on response
2. Should return "statusCode":401 on response body
3. Should return "code":401,"message":"Wrong email or
password, try again." on response body “error” key

9. Plus !! (optional)
a. Create fixture files with following data
i. Page static text values to use on steps 6 and 7
ii. Data with negative values to use on same steps 6 and 7 like:
1. wrong emails to validate the error message
2. invalid user first and last names with symbols
iii. API response errors messages to use on step 8

Finished

1. Run the test and got the cypress reports


2. Submit your solution to a private github repository. Keep the organization of branches
and commits as if you were working in a team. Give access to users:
○ DanielOjcius
○ fedecaccia
○ francomangussi
○ ramirocarra
○ gaston-rather

You might also like