UNCLASSIFIED - NO CUI

Skip to content
Snippets Groups Projects
Commit 887b4ad7 authored by Jeffrey Victor's avatar Jeffrey Victor Committed by Cody Williams
Browse files

Mattermost-Cypress-SSO-Add

parent 305b361e
No related branches found
No related tags found
1 merge request!138Mattermost-Cypress-SSO-Add
......@@ -3,6 +3,10 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [8.0.1-bb.2] - 2023-08-17
### Changed
- Updated Cypress tests to allow for SSO login
## [8.0.1-bb.1] - 2023-08-16
### Changed
- Updated dependency.yaml to point towards bigbang URL
......
# mattermost
![Version: 8.0.1-bb.1](https://img.shields.io/badge/Version-8.0.1--bb.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 8.0.1](https://img.shields.io/badge/AppVersion-8.0.1-informational?style=flat-square)
![Version: 8.0.1-bb.2](https://img.shields.io/badge/Version-8.0.1--bb.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 8.0.1](https://img.shields.io/badge/AppVersion-8.0.1-informational?style=flat-square)
Deployment of mattermost
......@@ -140,6 +140,8 @@ helm install mattermost chart/
| bbtests.cypress.envs.cypress_mm_email | string | `"test@bigbang.dev"` | |
| bbtests.cypress.envs.cypress_mm_user | string | `"bigbang"` | |
| bbtests.cypress.envs.cypress_mm_password | string | `"Bigbang#123"` | |
| bbtests.cypress.envs.cypress_keycloak_username | string | `"cypress"` | |
| bbtests.cypress.envs.cypress_keycloak_password | string | `"tnr_w!G33ZyAt@C8"` | |
## Contributing
......
......@@ -2,7 +2,7 @@
apiVersion: v2
name: mattermost
type: application
version: 8.0.1-bb.1
version: 8.0.1-bb.2
appVersion: 8.0.1
description: "Deployment of mattermost"
keywords:
......
......@@ -4,100 +4,109 @@ Cypress.on('uncaught:exception', (err, runnable) => {
})
describe('Mattermost Healthcheck', function() {
// Conditional check for inconsistent "welcome to mattermost" banner behavior
// Checks if mattermost sidebar pops up
function bannercheck() {
cy.wait(3000)
cy.get('body').then($body => {
if ($body.find('.link > span').length > 0) {
//evaluates as true if banner exists at all
cy.get('.link > span').then($header => {
if ($header.is(':visible')){
// evaluates to true if the banner is visible
console.log("Banner is Present")
$header.click()
} else {
console.log("Banner is not present")
}
});
}
})
}
cy.wait(3000)
cy.get('body').then($body => {
if ($body.find('.link > span').length > 0) {
//evaluates as true if banner exists at all
cy.get('.link > span').then($header => {
if ($header.is(':visible')){
// evaluates to true if the banner is visible
console.log("Banner is Present")
$header.click()
} else {
console.log("Banner is not present")
}
});
}
})
}
// Clicks the view in browser on MM
function browsercheck() {
cy.url().then(url => {
if (url.includes('landing')) {
cy.get('a.btn.btn-default.btn-lg.get-app__continue').click()
}
})
}
// Login credentials after sign up is complete
function login() {
cy.url().then(url => {
if (url.includes('login')) {
cy.get('input[id="input_loginId"]').type(Cypress.env('mm_user'))
cy.get('input[id="input_password-input"]').type(Cypress.env('mm_password'))
cy.get('button[id="saveSetting"]').click()
}
})
}
it('Keycloak SSO login or create User & Login', function() {
// This provides us with a login account on fresh installs
before(() => {
cy.visit(Cypress.env('url'))
cy.wait(8000)
// cy.wait(15000)
cy.wait(4000)
cy.get('div[id="root"]').should('be.visible')
cy.url().then(($url) => {
if ($url.includes('signup')) {
// note: Mattermost behaves differently on first login depending on the URL
// https://chat.bigbang.dev versus http://mattermost.mattermost.svc.cluster.local:8065
// explicitly visit the signup_email page
// so that the test works the same locally and in the pipeline
cy.visit(Cypress.env('url')+'/signup_email')
cy.wait(5000)
// cy.wait(10000)
cy.get('input[id="input_email"]').type(Cypress.env('mm_email'))
// #input
cy.get('input[id="input_name"]').type(Cypress.env('mm_user'))
cy.get('input[id="input_password-input"]').type(Cypress.env('mm_password'))
cy.get('button[id="saveSetting"]').click()
}
})
})
browsercheck()
beforeEach(() => {
cy.visit(Cypress.env('url'))
cy.wait(5000)
// cy.wait(10000)
cy.get('div[id="root"]').should('be.visible')
cy.wait(8000)
// Only runs if Keycloak_test_enable = 'true'
if (Cypress.env('keycloak_test_enable')) {
cy.contains('a#gitlab', 'GitLab').click();
cy.get('input[id="username"]')
.type(Cypress.env('keycloak_username'))
.should('have.value', Cypress.env('keycloak_username'));
cy.url().then(($url) => {
if ($url.includes('landing')) {
cy.get('a[class="btn btn-default btn-lg get-app__continue"]').click()
}
})
cy.get('input[id="password"]')
.type(Cypress.env('keycloak_password'))
.should('have.value', Cypress.env('keycloak_password'));
cy.get('form').submit();
// Accept Terms and Conditions
cy.get('input[id="kc-accept"]').click();
// Grant Privileges
cy.get('input[id="kc-login"]').click();
}
cy.wait(5000)
// Check if login is needed
cy.url().then(($url) => {
if ($url.includes('login')) {
cy.get('input[id="input_loginId"]').type(Cypress.env('mm_user'))
cy.url().then(url => {
if (url.includes('signup_user_complete')) {
cy.get('input[id="input_email"]').type(Cypress.env('mm_email'))
cy.get('input[id="input_name"]').type(Cypress.env('mm_user'))
cy.get('input[id="input_password-input"]').type(Cypress.env('mm_password'))
cy.get('button[id="saveSetting"]').click()
}
})
cy.wait(500)
})
login();
it('should create / persist teams', function() {
cy.wait(5000)
cy.wait(8000)
cy.url().then(($url) => {
cy.wait(1000)
if ($url.includes('select_team')) {
// create a team
cy.url().then(url => {
if (url.includes('select_team')) {
// create a team
cy.get('a[id="createNewTeamLink"]').click()
cy.wait(3000)
// Input Big Bang
cy.get('input[id="teamNameInput"]').type('Big Bang')
// Click Next
cy.get('button[id="teamNameNextButton"]').click()
//cy.get('input[id="teamURLInput"]').should('include', 'big-bang')
// Click finish
cy.get('button[id="teamURLFinishButton"]').click()
// Give some time for dialog load
}
if ($url.includes('preparing-workspace')){
// Input Big Bang
})
cy.url().then(url => {
if (url.includes ('preparing-workspace')) {
// Input Big Bang
cy.get('input[class="Organization__input"]').type('Big Bang')
// Click Next
cy.get('button[class="primary-button"]').click()
//cy.get('input[id="teamURLInput"]').should('include', 'big-bang')
// Click finish
cy.wait(1000)
cy.get('button[class="link-style plugins-skip-btn"]').click()
cy.wait(1000)
......@@ -105,16 +114,13 @@ describe('Mattermost Healthcheck', function() {
cy.wait(5000)
// Give some time for dialog load
}
bannercheck()
})
// click on Town Square
cy.wait(1000)
cy.visit(Cypress.env('url')+'/big-bang/channels/town-square')
cy.wait(10000)
cy.wait(5000)
cy.title().should('include', 'Town Square - Big Bang Mattermost')
})
})
it('should allow chatting', function() {
bannercheck()
let randomChat = "Hello " + Math.random().toString(36).substring(8);
......@@ -124,17 +130,40 @@ describe('Mattermost Healthcheck', function() {
cy.get('.close > [aria-hidden="true"]').click()
}
})
// cy.wait(10000)
cy.get('textarea[id="post_textbox"]').type(randomChat).type('{enter}')
cy.wait(1000)
browsercheck()
login()
cy.get('p').contains(randomChat).should('be.visible')
})
it('should have file storage connection', function() {
bannercheck()
cy.visit(Cypress.env('url')+'/admin_console/environment/file_storage')
cy.wait(10000)
cy.wait(1000)
browsercheck()
cy.wait(4000)
if (Cypress.env('keycloak_test_enable')) {
cy.contains('a#gitlab', 'GitLab').click();
cy.get('input[id="username"]')
.type(Cypress.env('keycloak_username'))
.should('have.value', Cypress.env('keycloak_username'));
cy.get('input[id="password"]')
.type(Cypress.env('keycloak_password'))
.should('have.value', Cypress.env('keycloak_password'));
cy.get('form').submit();
cy.get('input[id="kc-accept"]').click();
}
login()
bannercheck()
cy.get('span:contains("Test Connection")', {timeout: 10000}).click()
cy.wait(2000)
cy.get('div[class="alert alert-success"]').should('be.visible')
})
})
......@@ -292,3 +292,6 @@ bbtests:
cypress_mm_email: "test@bigbang.dev"
cypress_mm_user: "bigbang"
cypress_mm_password: "Bigbang#123"
cypress_keycloak_username: "cypress"
cypress_keycloak_password: "tnr_w!G33ZyAt@C8"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment