test: add tests for mitarbeiter creation and validation
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Playwright Tests / test (pull_request) Successful in 2m36s
				
			
		
		
	
	
		
	
		
			All checks were successful
		
		
	
	Playwright Tests / test (pull_request) Successful in 2m36s
				
			This commit is contained in:
		
					parent
					
						
							
								3882cde8ca
							
						
					
				
			
			
				commit
				
					
						a6047e2720
					
				
			
		
					 2 changed files with 86 additions and 1 deletions
				
			
		|  | @ -40,7 +40,7 @@ test.describe('mitarbeiter', () => { | ||||||
| 
 | 
 | ||||||
|     const users = page.getByText('Delete'); |     const users = page.getByText('Delete'); | ||||||
|     await users.first().waitFor({ state: "visible" }); |     await users.first().waitFor({ state: "visible" }); | ||||||
|     expect(await users.count()).toBe(2); |     expect(await users.count()).toBeGreaterThan(1); | ||||||
|     expect(button).toBeTruthy(); |     expect(button).toBeTruthy(); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										85
									
								
								tests/mitarbeiterErstellen.spec.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								tests/mitarbeiterErstellen.spec.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,85 @@ | ||||||
|  | import { test, expect } from "@playwright/test"; | ||||||
|  | 
 | ||||||
|  | test.describe('mitarbeiter', () => { | ||||||
|  |   test.beforeEach(async ({ page }) => { | ||||||
|  |     await page.goto('http://localhost:4200'); | ||||||
|  | 
 | ||||||
|  |     await page.getByRole('button').click(); | ||||||
|  |     await page.waitForFunction(() => window.location.href.includes('keycloak')); | ||||||
|  |     await page.getByLabel('Username or email').fill('user'); | ||||||
|  |     await page.getByLabel('Password').fill('test'); | ||||||
|  |     await page.click('#kc-login'); | ||||||
|  | 
 | ||||||
|  |     await page.goto('http://localhost:4200/mitarbeitererstellen'); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('pageShouldLoad', async ({ page }) => { | ||||||
|  |     await expect(page.getByText('Save')).toHaveCount(1); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('backButtonShouldGoBack', async ({ page }) => { | ||||||
|  |     await page.getByText('Back').click(); | ||||||
|  | 
 | ||||||
|  |     expect(page.url().includes('erstellen')).toBeFalsy(); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('EveryFieldShouldValidateEmptiness', async ({ page }) => { | ||||||
|  |     await page.getByText('Save').click(); | ||||||
|  | 
 | ||||||
|  |     const errors = page.getByText('This field is required'); | ||||||
|  | 
 | ||||||
|  |     await expect(errors).toHaveCount(6); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('PhoneNumberShouldBeValidated', async ({ page }) => { | ||||||
|  |     await page.getByLabel('Phone').fill("asd"); | ||||||
|  |     await page.getByText('Save').click(); | ||||||
|  | 
 | ||||||
|  |     const error = page.getByText('This field must be a valid phone number'); | ||||||
|  | 
 | ||||||
|  |     await expect(error).toHaveCount(1); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('PostCodeShouldValidateTooShort', async ({ page }) => { | ||||||
|  |     await page.getByLabel('Postcode').fill("1"); | ||||||
|  |     await page.getByText('Save').click(); | ||||||
|  | 
 | ||||||
|  |     const error = page.getByText('The value is too short'); | ||||||
|  | 
 | ||||||
|  |     await expect(error).toHaveCount(1); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('PostCodeShouldValidateTooLong', async ({ page }) => { | ||||||
|  |     await page.getByLabel('Postcode').fill("123456"); | ||||||
|  |     await page.getByText('Save').click(); | ||||||
|  | 
 | ||||||
|  |     const error = page.getByText('The value is too long'); | ||||||
|  | 
 | ||||||
|  |     await expect(error).toHaveCount(1); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('CreationAndDeletion', async ({ page }) => { | ||||||
|  |     await page.getByLabel('First Name').fill('a'); | ||||||
|  |     await page.getByLabel('Last Name').fill('a'); | ||||||
|  |     await page.getByLabel('Street').fill('a'); | ||||||
|  |     await page.getByLabel('Postcode').fill('12345'); | ||||||
|  |     await page.getByLabel('City').fill('a'); | ||||||
|  |     await page.getByLabel('Phone Number').fill('1234'); | ||||||
|  | 
 | ||||||
|  |     await page.getByText("Save").click(); | ||||||
|  | 
 | ||||||
|  |     expect(page.url().includes('erstellen')).toBeFalsy(); | ||||||
|  | 
 | ||||||
|  |     const toBeDeletedEmployee = page.getByText('12345'); | ||||||
|  |     await toBeDeletedEmployee.first().waitFor({ state: "visible" }); | ||||||
|  |     await expect(toBeDeletedEmployee).toHaveCount(1); | ||||||
|  | 
 | ||||||
|  |     const deleteButton = page.getByText('Delete').nth(2); | ||||||
|  | 
 | ||||||
|  |     await deleteButton.click(); | ||||||
|  | 
 | ||||||
|  |     const deletedEmployee = page.getByText('12345'); | ||||||
|  |     await expect(deletedEmployee).toHaveCount(0); | ||||||
|  |   }); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
		Reference in a new issue