1
- import { test , expect , Locator } from "@playwright/test" ;
1
+ import { test , expect } from "@playwright/test" ;
2
2
3
3
test . describe ( "Home Page" , ( ) => {
4
4
test . beforeEach ( async ( { page } ) => {
5
- await page . route (
5
+ page . route (
6
6
"https://api.github.com/repos/LuaLS/lua-language-server" ,
7
7
async ( route ) => {
8
8
const json = { stargazers_count : 2000 } ;
9
9
return route . fulfill ( { json } ) ;
10
10
}
11
11
) ;
12
12
13
- await page . route (
13
+ page . route (
14
14
"https://corsproxy.io/?https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery" ,
15
15
async ( route ) => {
16
16
const json = {
@@ -28,108 +28,13 @@ test.describe("Home Page", () => {
28
28
}
29
29
) ;
30
30
31
- await page . goto ( "/" ) ;
31
+ await page . goto ( "/" , { waitUntil : "load" , timeout : 3000 } ) ;
32
32
} ) ;
33
33
34
34
test ( "Metadata" , async ( { page } ) => {
35
35
await expect ( page ) . toHaveTitle ( "Lua Language Server | Home" ) ;
36
36
} ) ;
37
37
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
-
133
38
test . describe ( "Install Instructions Visible" , ( ) => {
134
39
test ( "VS Code" , async ( { page, baseURL } ) => {
135
40
await page . getByRole ( "button" , { name : "Visual Studio Code" } ) . click ( ) ;
0 commit comments