You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							2.7 KiB
						
					
					
				| import { test, expect } from '@playwright/test'; | |
| import { importUserFromAccount, getTestUserData } from './testUtils'; | |
| import { NOTIFY_DUPLICATE_ACCOUNT_IMPORT } from '../src/constants/notifications'; | |
| 
 | |
| /** | |
|  * Test duplicate account import functionality | |
|  *  | |
|  * This test verifies that: | |
|  * 1. A user can successfully import an account the first time | |
|  * 2. Attempting to import the same account again shows a warning message | |
|  * 3. The duplicate import is prevented | |
|  */ | |
| test.describe('Duplicate Account Import', () => { | |
|   test('should prevent importing the same account twice', async ({ page }) => { | |
|     const userData = getTestUserData("00"); | |
|      | |
|     // First import - should succeed | |
|     await page.goto("./start"); | |
|     await page.getByText("You have a seed").click(); | |
|     await page.getByPlaceholder("Seed Phrase").fill(userData.seedPhrase); | |
|     await page.getByRole("button", { name: "Import" }).click(); | |
|      | |
|     // Verify first import was successful | |
|     await expect(page.getByRole("code")).toContainText(userData.did); | |
|      | |
|     // Navigate back to start page for second import attempt | |
|     await page.goto("./start"); | |
|     await page.getByText("You have a seed").click(); | |
|     await page.getByPlaceholder("Seed Phrase").fill(userData.seedPhrase); | |
|     await page.getByRole("button", { name: "Import" }).click(); | |
|      | |
|     // Verify duplicate import shows warning message | |
|     // The warning can appear either from the pre-check or from the saveNewIdentity error handling | |
|     await expect(page.getByText(NOTIFY_DUPLICATE_ACCOUNT_IMPORT.message)).toBeVisible(); | |
|      | |
|     // Verify we're still on the import page (not redirected to account) | |
|     await expect(page.getByPlaceholder("Seed Phrase")).toBeVisible(); | |
|   }); | |
| 
 | |
|   test('should allow importing different accounts', async ({ page }) => { | |
|     const userZeroData = getTestUserData("00"); | |
|     const userOneData = getTestUserData("01"); | |
|      | |
|     // Import first user | |
|     await page.goto("./start"); | |
|     await page.getByText("You have a seed").click(); | |
|     await page.getByPlaceholder("Seed Phrase").fill(userZeroData.seedPhrase); | |
|     await page.getByRole("button", { name: "Import" }).click(); | |
|      | |
|     // Verify first import was successful | |
|     await expect(page.getByRole("code")).toContainText(userZeroData.did); | |
|      | |
|     // Navigate back to start page for second user import | |
|     await page.goto("./start"); | |
|     await page.getByText("You have a seed").click(); | |
|     await page.getByPlaceholder("Seed Phrase").fill(userOneData.seedPhrase); | |
|     await page.getByRole("button", { name: "Import" }).click(); | |
|      | |
|     // Verify second import was successful (should not show duplicate warning) | |
|     await expect(page.getByRole("code")).toContainText(userOneData.did); | |
|     await expect(page.getByText(NOTIFY_DUPLICATE_ACCOUNT_IMPORT.message)).not.toBeVisible(); | |
|   }); | |
| });
 | |
| 
 |