Skip to content

Commit

Permalink
format typescript code
Browse files Browse the repository at this point in the history
  • Loading branch information
rjferguson21 committed Apr 10, 2024
1 parent ba2a863 commit 30bc73e
Show file tree
Hide file tree
Showing 12 changed files with 261 additions and 211 deletions.
13 changes: 13 additions & 0 deletions src/test/cypress/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"arrowParens": "avoid",
"bracketSameLine": true,
"bracketSpacing": true,
"embeddedLanguageFormatting": "auto",
"insertPragma": false,
"printWidth": 100,
"quoteProps": "as-needed",
"requirePragma": false,
"semi": true,
"useTabs": false,
"tabWidth": 2
}
8 changes: 4 additions & 4 deletions src/test/cypress/cypress.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ module.exports = defineConfig({
// implement node event listeners here
},
retries: 3,
specPattern: 'e2e/**/*.cy.ts',
supportFolder: 'support/',
supportFile: 'support/e2e.ts',
specPattern: "e2e/**/*.cy.ts",
supportFolder: "support/",
supportFile: "support/e2e.ts",
screenshotOnRunFailure: false,
video: false
video: false,
},

pageLoadTimeout: 12000,
Expand Down
65 changes: 33 additions & 32 deletions src/test/cypress/e2e/login.cy.ts
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
import { RegistrationFormData } from "../support/types";

describe('Login Flow', () => {

it('Existing User', () => {
// existing user created in test realm.json
const formData: RegistrationFormData = {
firstName: 'Testing',
lastName: 'User',
username: 'testing_user',
password: 'testingpassword!!',
};

cy.loginUser(formData.username, formData.password);

// skip the DoD PKI Detected Pop Up
cy.get('input#kc-cancel.btn.btn-light').click();

// Verify Successful Registration and on User Account Page
cy.get('#landingLoggedInUser').should('be.visible').and('contain', formData.firstName+ ' ' + formData.lastName);
});

it('Invalid User Creds', () => {
const formData: RegistrationFormData = {
username: 'testing_user',
password: 'PrettyUnicorns!!',
};

cy.loginUser(formData.username, formData.password);

// user doesn't exist or password is incorrect
cy.contains('span', 'Invalid username or password.').should('be.visible');
});
});
describe("Login Flow", () => {
it("Existing User", () => {
// existing user created in test realm.json
const formData: RegistrationFormData = {
firstName: "Testing",
lastName: "User",
username: "testing_user",
password: "testingpassword!!",
};

cy.loginUser(formData.username, formData.password);

// skip the DoD PKI Detected Pop Up
cy.get("input#kc-cancel.btn.btn-light").click();

// Verify Successful Registration and on User Account Page
cy.get("#landingLoggedInUser")
.should("be.visible")
.and("contain", formData.firstName + " " + formData.lastName);
});

it("Invalid User Creds", () => {
const formData: RegistrationFormData = {
username: "testing_user",
password: "PrettyUnicorns!!",
};

cy.loginUser(formData.username, formData.password);

// user doesn't exist or password is incorrect
cy.contains("span", "Invalid username or password.").should("be.visible");
});
});
206 changes: 106 additions & 100 deletions src/test/cypress/e2e/registration.cy.ts
Original file line number Diff line number Diff line change
@@ -1,105 +1,111 @@
import { RegistrationFormData } from "../support/types";

describe('CAC Registration Flow', () => {
describe("CAC Registration Flow", () => {
const formData: RegistrationFormData = {
firstName: "John",
lastName: "Doe",
organization: "Defense Unicorns",
username: "john_doe",
email: "johndoe@defenseunicorns.com",
password: "CAC",
affiliation: "Contractor",
payGrade: "N/A",
};

it("Successful CAC Registration", () => {
cy.registrationPage(formData);

// Verify Successful Registration and on User Account Page
cy.get("#landingLoggedInUser")
.should("be.visible")
.and("contain", formData.firstName + " " + formData.lastName);
});

it("Successfull Login of CAC Registered User", () => {
// Navigate to login page
cy.loginPage();

// Verify DoD PKI Detected Banner on Login page
cy.get(".form-group .alert-info").should("be.visible").contains("h2", "DoD PKI Detected");
cy.get(".form-group #certificate_subjectDN")
.should("be.visible")
.contains("C=US,ST=Colorado,L=Colorado Springs,O=Defense Unicorns,CN=uds.dev");

// Verify that PKI User information is correct
cy.get(".form-group").contains("label", "You will be logged in as:").should("be.visible");
cy.get(".form-group #username").should("be.visible").contains("john_doe");

// Sign in using the PKI
cy.get("#kc-login").should("be.visible").click();

// Verify Users first and last in top bar
cy.get("#landingLoggedInUser").should("be.visible").and("have.text", "John Doe");

// Verify that groups card is present, proving that signin was successful
cy.get(".pf-c-card__title .pf-u-display-flex").should("exist").and("contain", "Groups");
cy.get(".pf-c-card__body").should("exist");
cy.get("#landing-groups").should("exist");
});
});

describe("Registration Tests", () => {
it("Duplicate Registration", () => {
const formData: RegistrationFormData = {
firstName: "Testing",
lastName: "User",
organization: "Defense Unicorns",
username: "testing_user",
email: "testinguser@gmail.com",
password: "PrettyUnicorns!!",
affiliation: "Contractor",
payGrade: "N/A",
};

cy.registrationPage(formData);

// duplicate user trying to register with PKI should result in this warning
cy.contains("span.message-details", "Email already exists.").should("be.visible");
cy.contains("span.message-details", "Username already exists.").should("be.visible");
});

it("Password Length", () => {
const formData: RegistrationFormData = {
firstName: 'John',
lastName: 'Doe',
organization: 'Defense Unicorns',
username: 'john_doe',
email: 'johndoe@defenseunicorns.com',
password: 'CAC',
affiliation: 'Contractor',
payGrade: 'N/A'
};

it('Successful CAC Registration', () => {
cy.registrationPage(formData);

// Verify Successful Registration and on User Account Page
cy.get('#landingLoggedInUser').should('be.visible').and('contain', formData.firstName+ ' ' + formData.lastName);
});


it('Successfull Login of CAC Registered User', () => {
// Navigate to login page
cy.loginPage();

// Verify DoD PKI Detected Banner on Login page
cy.get('.form-group .alert-info').should('be.visible').contains('h2', 'DoD PKI Detected');
cy.get('.form-group #certificate_subjectDN').should('be.visible').contains('C=US,ST=Colorado,L=Colorado Springs,O=Defense Unicorns,CN=uds.dev');

// Verify that PKI User information is correct
cy.get('.form-group').contains('label', 'You will be logged in as:').should('be.visible');
cy.get('.form-group #username').should('be.visible').contains('john_doe');

// Sign in using the PKI
cy.get('#kc-login').should('be.visible').click();

// Verify Users first and last in top bar
cy.get('#landingLoggedInUser').should('be.visible').and('have.text', 'John Doe');

// Verify that groups card is present, proving that signin was successful
cy.get('.pf-c-card__title .pf-u-display-flex').should('exist').and('contain', 'Groups');
cy.get('.pf-c-card__body').should('exist');
cy.get('#landing-groups').should('exist');
});
firstName: "New",
lastName: "User",
organization: "Defense Unicorns",
username: "new_user",
email: "newuser@gmail.com",
password: "Pretty!!",
affiliation: "Contractor",
payGrade: "N/A",
};

cy.registrationPage(formData);

// password isn't long enough
cy.contains("span.message-details", "Invalid password: minimum length 12.").should(
"be.visible",
);
});

it("Password Complexity", () => {
const formData: RegistrationFormData = {
firstName: "New",
lastName: "User",
organization: "Defense Unicorns",
username: "new_user",
email: "newuser@gmail.com",
password: "PrettyUnicorns",
affiliation: "Contractor",
payGrade: "N/A",
};

cy.registrationPage(formData);

// password isn't complex enough
cy.contains(
"span.message-details",
"Invalid password: must contain at least 2 special characters.",
).should("be.visible");
});
});

describe('Registration Tests', () => {

it('Duplicate Registration', () => {
const formData: RegistrationFormData = {
firstName: 'Testing',
lastName: 'User',
organization: 'Defense Unicorns',
username: 'testing_user',
email: 'testinguser@gmail.com',
password: 'PrettyUnicorns!!',
affiliation: 'Contractor',
payGrade: 'N/A'
};

cy.registrationPage(formData);

// duplicate user trying to register with PKI should result in this warning
cy.contains('span.message-details', 'Email already exists.').should('be.visible');
cy.contains('span.message-details', 'Username already exists.').should('be.visible');
});

it('Password Length', () => {
const formData: RegistrationFormData = {
firstName: 'New',
lastName: 'User',
organization: 'Defense Unicorns',
username: 'new_user',
email: 'newuser@gmail.com',
password: 'Pretty!!',
affiliation: 'Contractor',
payGrade: 'N/A'
};

cy.registrationPage(formData);

// password isn't long enough
cy.contains('span.message-details', 'Invalid password: minimum length 12.').should('be.visible');
});

it('Password Complexity', () => {
const formData: RegistrationFormData = {
firstName: 'New',
lastName: 'User',
organization: 'Defense Unicorns',
username: 'new_user',
email: 'newuser@gmail.com',
password: 'PrettyUnicorns',
affiliation: 'Contractor',
payGrade: 'N/A'
};

cy.registrationPage(formData);

// password isn't complex enough
cy.contains('span.message-details', 'Invalid password: must contain at least 2 special characters.').should('be.visible');
});
});
16 changes: 16 additions & 0 deletions src/test/cypress/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion src/test/cypress/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
"main": "index.js",
"scripts": {
"cy.open": "cypress open",
"cy.run": "cypress run"
"cy.run": "cypress run",
"prettier": "prettier --write **/*.ts"
},
"devDependencies": {
"cypress": "^13.7.1",
"prettier": "^3.2.5",
"typescript": "^5.4.3"
}
}
Loading

0 comments on commit 30bc73e

Please sign in to comment.