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();
							 | 
						|
								  });
							 | 
						|
								});
							 | 
						|
								
							 |