Playwright e2e test for taborder
This should be a failing test for Firefox (but working in Chrome?) for the taborder in the explore page. Tabbing through the page should ensure that certain elements are focused at least once.
This commit is contained in:
		
							parent
							
								
									4dbf2d7c11
								
							
						
					
					
						commit
						16a63a16b3
					
				
					 1 changed files with 39 additions and 0 deletions
				
			
		
							
								
								
									
										39
									
								
								tests/e2e/explore.test.e2e.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								tests/e2e/explore.test.e2e.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
// @ts-check
 | 
			
		||||
// document is a global in evaluate, so it's safe to ignore here
 | 
			
		||||
/* eslint no-undef: 0 */
 | 
			
		||||
import {test, expect} from '@playwright/test';
 | 
			
		||||
 | 
			
		||||
test('Explore view taborder', async ({page}) => {
 | 
			
		||||
  await page.goto('/explore/repos');
 | 
			
		||||
 | 
			
		||||
  const l1 = page.locator('[href="https://forgejo.org"]');
 | 
			
		||||
  const l2 = page.locator('[href="/assets/licenses.txt"]');
 | 
			
		||||
  const l3 = page.locator('[href*="/stars"]').first();
 | 
			
		||||
  const l4 = page.locator('[href*="/forks"]').first();
 | 
			
		||||
  let res = 0;
 | 
			
		||||
  const exp = 15; // 0b1111 = four passing tests
 | 
			
		||||
 | 
			
		||||
  for (let i = 0; i < 150; i++) {
 | 
			
		||||
    await page.keyboard.press('Tab');
 | 
			
		||||
    if (await l1.evaluate((node) => document.activeElement === node)) {
 | 
			
		||||
      res |= 1;
 | 
			
		||||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
    if (await l2.evaluate((node) => document.activeElement === node)) {
 | 
			
		||||
      res |= 1 << 1;
 | 
			
		||||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
    if (await l3.evaluate((node) => document.activeElement === node)) {
 | 
			
		||||
      res |= 1 << 2;
 | 
			
		||||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
    if (await l4.evaluate((node) => document.activeElement === node)) {
 | 
			
		||||
      res |= 1 << 3;
 | 
			
		||||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
    if (res === exp) {
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  await expect(res).toBe(exp);
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue