mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:39:37 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { test, expect } from '@playwright/test';
 | 
						|
import { app } from '../test-utils';
 | 
						|
 | 
						|
test.describe('Registration', () => {
 | 
						|
  test.beforeAll(async () => {
 | 
						|
    await app.reset();
 | 
						|
  });
 | 
						|
 | 
						|
  test.afterAll(async () => {
 | 
						|
    await app.teardown();
 | 
						|
  });
 | 
						|
 | 
						|
  test('admin registration', async ({ page }) => {
 | 
						|
    // welcome
 | 
						|
    await page.goto('/');
 | 
						|
    await page.getByRole('button', { name: 'Getting Started' }).click();
 | 
						|
 | 
						|
    // register
 | 
						|
    await expect(page).toHaveTitle(/Admin Registration/);
 | 
						|
    await page.getByLabel('Admin Email').fill('admin@immich.app');
 | 
						|
    await page.getByLabel('Admin Password', { exact: true }).fill('password');
 | 
						|
    await page.getByLabel('Confirm Admin Password').fill('password');
 | 
						|
    await page.getByLabel('Name').fill('Immich Admin');
 | 
						|
    await page.getByRole('button', { name: 'Sign up' }).click();
 | 
						|
 | 
						|
    // login
 | 
						|
    await expect(page).toHaveTitle(/Login/);
 | 
						|
    await page.goto('/auth/login');
 | 
						|
    await page.getByLabel('Email').fill('admin@immich.app');
 | 
						|
    await page.getByLabel('Password').fill('password');
 | 
						|
    await page.getByRole('button', { name: 'Login' }).click();
 | 
						|
 | 
						|
    // onboarding
 | 
						|
    await expect(page).toHaveURL('/auth/onboarding');
 | 
						|
    await page.getByRole('button', { name: 'Theme' }).click();
 | 
						|
    await page.getByRole('button', { name: 'Storage Template' }).click();
 | 
						|
    await page.getByRole('button', { name: 'Done' }).click();
 | 
						|
 | 
						|
    // success
 | 
						|
    await expect(page).toHaveURL('/photos');
 | 
						|
  });
 | 
						|
 | 
						|
  test('user registration', async ({ context, page }) => {
 | 
						|
    await app.adminSetup(context);
 | 
						|
 | 
						|
    // create user
 | 
						|
    await page.goto('/admin/user-management');
 | 
						|
    await expect(page).toHaveTitle(/User Management/);
 | 
						|
    await page.getByRole('button', { name: 'Create user' }).click();
 | 
						|
    await page.getByLabel('Email').fill('user@immich.cloud');
 | 
						|
    await page.getByLabel('Password', { exact: true }).fill('password');
 | 
						|
    await page.getByLabel('Confirm Password').fill('password');
 | 
						|
    await page.getByLabel('Name').fill('Immich User');
 | 
						|
    await page.getByRole('button', { name: 'Create', exact: true }).click();
 | 
						|
 | 
						|
    // logout
 | 
						|
    await context.clearCookies();
 | 
						|
 | 
						|
    // login
 | 
						|
    await page.goto('/auth/login');
 | 
						|
    await page.getByLabel('Email').fill('user@immich.cloud');
 | 
						|
    await page.getByLabel('Password').fill('password');
 | 
						|
    await page.getByRole('button', { name: 'Login' }).click();
 | 
						|
 | 
						|
    // change password
 | 
						|
    expect(page.getByRole('heading')).toHaveText('Change Password');
 | 
						|
    await expect(page).toHaveURL('/auth/change-password');
 | 
						|
    await page.getByLabel('New Password').fill('new-password');
 | 
						|
    await page.getByLabel('Confirm Password').fill('new-password');
 | 
						|
    await page.getByRole('button', { name: 'Change password' }).click();
 | 
						|
 | 
						|
    // login with new password
 | 
						|
    await expect(page).toHaveURL('/auth/login');
 | 
						|
    await page.getByLabel('Email').fill('user@immich.cloud');
 | 
						|
    await page.getByLabel('Password').fill('new-password');
 | 
						|
    await page.getByRole('button', { name: 'Login' }).click();
 | 
						|
 | 
						|
    // success
 | 
						|
    await expect(page).toHaveURL(/\/photos/);
 | 
						|
  });
 | 
						|
});
 |