forked from open-webui/open-webui
53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
|
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
|
||
|
/// <reference path="../support/index.d.ts" />
|
||
|
import { adminUser } from '../support/e2e';
|
||
|
|
||
|
// These tests assume the following defaults:
|
||
|
// 1. No users exist in the database or that the test admin user is an admin
|
||
|
// 2. Language is set to English
|
||
|
// 3. The default role for new users is 'pending'
|
||
|
describe('Registration and Login', () => {
|
||
|
// Wait for 2 seconds after all tests to fix an issue with Cypress's video recording missing the last few frames
|
||
|
after(() => {
|
||
|
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||
|
cy.wait(2000);
|
||
|
});
|
||
|
|
||
|
beforeEach(() => {
|
||
|
cy.visit('/');
|
||
|
});
|
||
|
|
||
|
it('should register a new user as pending', () => {
|
||
|
const userName = `Test User - ${Date.now()}`;
|
||
|
const userEmail = `cypress-${Date.now()}@example.com`;
|
||
|
// Toggle from sign in to sign up
|
||
|
cy.contains('Sign up').click();
|
||
|
// Fill out the form
|
||
|
cy.get('input[autocomplete="name"]').type(userName);
|
||
|
cy.get('input[autocomplete="email"]').type(userEmail);
|
||
|
cy.get('input[type="password"]').type('password');
|
||
|
// Submit the form
|
||
|
cy.get('button[type="submit"]').click();
|
||
|
// Wait until the user is redirected to the home page
|
||
|
cy.contains(userName);
|
||
|
// Expect the user to be pending
|
||
|
cy.contains('Check Again');
|
||
|
});
|
||
|
|
||
|
it('can login with the admin user', () => {
|
||
|
// Fill out the form
|
||
|
cy.get('input[autocomplete="email"]').type(adminUser.email);
|
||
|
cy.get('input[type="password"]').type(adminUser.password);
|
||
|
// Submit the form
|
||
|
cy.get('button[type="submit"]').click();
|
||
|
// Wait until the user is redirected to the home page
|
||
|
cy.contains(adminUser.name);
|
||
|
// Dismiss the changelog dialog if it is visible
|
||
|
cy.getAllLocalStorage().then((ls) => {
|
||
|
if (!ls['version']) {
|
||
|
cy.get('button').contains("Okay, Let's Go!").click();
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
});
|