| 
						
						
						
					 | 
				
				 | 
				
					@ -1,6 +1,9 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { expect, Page } from '@playwright/test'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					export async function importUser(page: Page, id?: string): Promise<void> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Import the seed and switch to the user based on the ID.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// '01' -> 111
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// otherwise -> 000
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					export async function importUser(page: Page, id?: string): Promise<string> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  let seedPhrase, userName, did; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // Set seed phrase and DID based on user ID
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -21,14 +24,45 @@ export async function importUser(page: Page, id?: string): Promise<void> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByText('You have a seed').click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByPlaceholder('Seed Phrase').fill(seedPhrase); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByRole('button', { name: 'Import' }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await expect(page.locator('#sectionUsageLimits')).toContainText('You have done'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await expect(page.locator('#sectionUsageLimits')).toContainText('You have uploaded'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // Set name
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByRole('link', { name: 'Set Your Name' }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByPlaceholder('Name').fill(userName); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByRole('button', { name: 'Save Changes' }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // Check DID
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await expect(page.getByRole('code')).toContainText(did); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // ... and ensure the app retrieves the registration status
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await expect(page.getByText('Your claims counter resets')).toBeVisible(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  return did; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// This is to switch to someone already in the identity table. It doesn't include registration.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					export async function switchToUser(page: Page, did: string): Promise<void> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.goto('./account'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByRole('heading', { name: 'Advanced' }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByRole('link', { name: 'Switch Identifier' }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByRole('code', { name: did }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Generate a new random user and register them.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Note that this makes 000 the active user. Use switchToUser to switch to this DID.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					export async function generateEthrUser(page: Page): Promise<string> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.goto('./start'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByTestId('newSeed').click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await expect(page.locator('span:has-text("Created")')).toBeVisible(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.goto('./account'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // wait until the DID shows on the page in the 'did' element
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  const didElem = await page.getByTestId('didWrapper').locator('code:has-text("did:")'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  const newDid = await didElem.innerText(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await importUser(page, '000'); // switch to user 000
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.goto('./contacts'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  const threeChars = newDid.slice(11, 14); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.getByPlaceholder('URL or DID, Name, Public Key').fill(`${newDid}, User ${threeChars}`); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.locator('button > svg.fa-plus').click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.locator('li', { hasText: threeChars }).click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // register them
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await page.locator('div[role="alert"] button:has-text("Yes")').click(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // wait for it to disappear because the next steps may depend on alerts being gone
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  await expect(page.locator('div[role="alert"] button:has-text("Yes")')).toBeHidden(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  return newDid; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |