1- import { test , expect , Locator } from "@playwright/test" ;
1+ import { test , expect } from "@playwright/test" ;
22
33test . describe ( "Home Page" , ( ) => {
44 test . beforeEach ( async ( { page } ) => {
5- await page . route (
5+ page . route (
66 "https://api.github.com/repos/LuaLS/lua-language-server" ,
77 async ( route ) => {
88 const json = { stargazers_count : 2000 } ;
99 return route . fulfill ( { json } ) ;
1010 }
1111 ) ;
1212
13- await page . route (
13+ page . route (
1414 "https://corsproxy.io/?https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery" ,
1515 async ( route ) => {
1616 const json = {
@@ -28,108 +28,13 @@ test.describe("Home Page", () => {
2828 }
2929 ) ;
3030
31- await page . goto ( "/" ) ;
31+ await page . goto ( "/" , { waitUntil : "load" , timeout : 3000 } ) ;
3232 } ) ;
3333
3434 test ( "Metadata" , async ( { page } ) => {
3535 await expect ( page ) . toHaveTitle ( "Lua Language Server | Home" ) ;
3636 } ) ;
3737
38- test . describe ( "Header" , ( ) => {
39- test ( "Exists" , async ( { page } ) => {
40- await expect ( page . getByRole ( "banner" ) ) . toBeVisible ( ) ;
41- } ) ;
42-
43- test ( "Home Link" , async ( { page, baseURL } ) => {
44- await page . getByRole ( "link" , { name : "house" } ) . click ( ) ;
45- expect ( page . url ( ) ) . toBe ( baseURL ) ;
46- } ) ;
47-
48- test ( "Wiki Link" , async ( { page, baseURL } ) => {
49- await page . getByRole ( "link" , { name : "book" } ) . click ( ) ;
50- await page . waitForURL ( "/wiki/" ) ;
51- expect ( page . url ( ) ) . toBe ( baseURL + "wiki/" ) ;
52- } ) ;
53-
54- test . describe ( "Search" , async ( ) => {
55- let searchInput : Locator ;
56-
57- test . beforeEach ( async ( { page } ) => {
58- searchInput = page . getByPlaceholder ( "Search..." ) ;
59- } ) ;
60-
61- const isOpen = async ( ) => {
62- await expect ( searchInput ) . toBeVisible ( ) ;
63- await expect ( searchInput ) . toBeFocused ( ) ;
64- } ;
65-
66- const isClosed = async ( ) => {
67- await expect ( searchInput ) . not . toBeVisible ( ) ;
68- } ;
69-
70- test ( "Open Search With Button" , async ( { page } ) => {
71- await page . getByRole ( "button" , { name : "search" } ) . click ( ) ;
72- await isOpen ( ) ;
73- } ) ;
74-
75- test ( "Open Search With Keypress" , async ( { page } ) => {
76- await page . getByRole ( "document" ) . press ( "/" ) ;
77- await isOpen ( ) ;
78- } ) ;
79-
80- test ( "Close Search With Escape" , async ( { page } ) => {
81- await page . getByRole ( "document" ) . press ( "/" ) ;
82- await isOpen ( ) ;
83- await searchInput . press ( "Escape" ) ;
84- await isClosed ( ) ;
85- } ) ;
86-
87- test ( "Close Search By Clicking Background" , async ( { page } ) => {
88- await page . getByRole ( "document" ) . press ( "/" ) ;
89- await isOpen ( ) ;
90- await page . locator ( "#site-search" ) . click ( ) ;
91- await isClosed ( ) ;
92- } ) ;
93-
94- test ( "Search Finds Privacy Page" , async ( { page, baseURL } ) => {
95- await page . getByRole ( "document" ) . press ( "/" ) ;
96- await searchInput . fill ( "priva" ) ;
97- const link = page . getByRole ( "link" , { name : "Privacy /privacy" } ) ;
98-
99- await expect ( link ) . toBeVisible ( ) ;
100- await searchInput . press ( "Enter" ) ;
101- await page . waitForURL ( "/privacy/" ) ;
102- expect ( page . url ( ) ) . toBe ( `${ baseURL } privacy/` ) ;
103- await expect ( page ) . toHaveTitle ( "Lua Language Server | Privacy" ) ;
104- } ) ;
105-
106- test ( "Search Finds GitHub Repository" , async ( { page, context } ) => {
107- await page . getByRole ( "document" ) . press ( "/" ) ;
108- await searchInput . fill ( "reposit" ) ;
109- const link = page . getByRole ( "link" , {
110- name : "GitHub Repository https://github.com/LuaLS/LuaLS.github.io" ,
111- } ) ;
112-
113- await expect ( link ) . toBeVisible ( ) ;
114-
115- const pagePromise = context . waitForEvent ( "page" ) ;
116- await searchInput . press ( "Enter" ) ;
117- const newPage = await pagePromise ;
118- expect ( newPage . url ( ) ) . toBe ( "https://github.com/LuaLS/LuaLS.github.io" ) ;
119- } ) ;
120- } ) ;
121-
122- test ( "GitHub Link" , async ( { page, context } ) => {
123- const pagePromise = context . waitForEvent ( "page" ) ;
124- await page . getByRole ( "link" , { name : "github" } ) . click ( ) ;
125- const newPage = await pagePromise ;
126- await newPage . waitForLoadState ( ) ;
127- expect ( newPage . url ( ) ) . toBe (
128- "https://github.com/luals/lua-language-server"
129- ) ;
130- } ) ;
131- } ) ;
132-
13338 test . describe ( "Install Instructions Visible" , ( ) => {
13439 test ( "VS Code" , async ( { page, baseURL } ) => {
13540 await page . getByRole ( "button" , { name : "Visual Studio Code" } ) . click ( ) ;
0 commit comments