@@ -55,39 +55,67 @@ test.describe("project page navigation", () => {
55
55
} ) ;
56
56
57
57
test ( "navigate between tree and commit history" , async ( { page } ) => {
58
- const projectTreeURL = `/#${ sourceBrowsingUrl } ` ;
58
+ const projectTreeURL = `/#${ sourceBrowsingUrl } /tree/ ${ aliceMainHead } ` ;
59
59
60
60
await page . goto ( projectTreeURL ) ;
61
+ await page
62
+ . getByRole ( "progressbar" , { name : "Page loading" } )
63
+ . waitFor ( { state : "hidden" } ) ;
61
64
await expect ( page ) . toHaveURL ( projectTreeURL ) ;
62
65
63
66
await page . getByRole ( "link" , { name : "6 commits" } ) . click ( ) ;
64
- await expect ( page ) . toHaveURL ( `/#${ sourceBrowsingUrl } /history` ) ;
67
+ await expect ( page ) . toHaveURL (
68
+ `/#${ sourceBrowsingUrl } /history/${ aliceMainHead } ` ,
69
+ ) ;
65
70
66
71
await expectBackAndForwardNavigationWorks ( projectTreeURL , page ) ;
67
72
await expectUrlPersistsReload ( page ) ;
68
73
} ) ;
69
74
70
- test ( "navigate project paths" , async ( { page } ) => {
75
+ test ( "navigate between tree and commit history while a file is selected" , async ( {
76
+ page,
77
+ } ) => {
71
78
const projectTreeURL = `/#${ sourceBrowsingUrl } ` ;
72
79
73
80
await page . goto ( projectTreeURL ) ;
81
+ await page
82
+ . getByRole ( "progressbar" , { name : "Page loading" } )
83
+ . waitFor ( { state : "hidden" } ) ;
74
84
await expect ( page ) . toHaveURL ( projectTreeURL ) ;
75
85
76
86
await page . getByText ( ".hidden" ) . click ( ) ;
77
- await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/main/.hidden` ) ;
87
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/.hidden` ) ;
88
+
89
+ await page . getByRole ( "link" , { name : "6 commits" } ) . click ( ) ;
90
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /history` ) ;
91
+ } ) ;
92
+
93
+ test ( "navigate project paths" , async ( { page } ) => {
94
+ const projectTreeURL = `/#${ sourceBrowsingUrl } /tree/${ aliceMainHead } ` ;
95
+
96
+ await page . goto ( projectTreeURL ) ;
97
+ await expect ( page ) . toHaveURL ( projectTreeURL ) ;
98
+
99
+ await page . getByText ( ".hidden" ) . click ( ) ;
100
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /.hidden` ) ;
78
101
79
102
await page . getByText ( "bin/" ) . click ( ) ;
80
103
await page . getByText ( "true" ) . click ( ) ;
81
- await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/main/ bin/true` ) ;
104
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /bin/true` ) ;
82
105
83
106
await expectBackAndForwardNavigationWorks (
84
- `${ projectTreeURL } /tree/main/ .hidden` ,
107
+ `${ projectTreeURL } /.hidden` ,
85
108
page ,
86
109
) ;
87
110
await expectUrlPersistsReload ( page ) ;
88
111
} ) ;
89
112
90
- test ( "navigate project paths with a selected peer" , async ( { page } ) => {
113
+ test ( "navigate project paths with an explicitly selected peer" , async ( {
114
+ page,
115
+ } ) => {
116
+ // If a branch isn't explicitly specified, the code assumes the project
117
+ // default branch is selected. We omit showing the default branch in the URL.
118
+
91
119
const projectTreeURL = `/#${ sourceBrowsingUrl } /remotes/${ aliceRemote . substring (
92
120
8 ,
93
121
) } `;
@@ -96,14 +124,38 @@ test.describe("project page navigation", () => {
96
124
await expect ( page ) . toHaveURL ( projectTreeURL ) ;
97
125
98
126
await page . getByText ( ".hidden" ) . click ( ) ;
99
- await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/main/.hidden` ) ;
127
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/.hidden` ) ;
128
+
129
+ await page . getByText ( "bin/" ) . click ( ) ;
130
+ await page . getByText ( "true" ) . click ( ) ;
131
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/bin/true` ) ;
132
+
133
+ await expectBackAndForwardNavigationWorks (
134
+ `${ projectTreeURL } /tree/.hidden` ,
135
+ page ,
136
+ ) ;
137
+ await expectUrlPersistsReload ( page ) ;
138
+ } ) ;
139
+
140
+ test ( "navigate project paths with an explicitly selected peer and branch" , async ( {
141
+ page,
142
+ } ) => {
143
+ const projectTreeURL = `/#${ sourceBrowsingUrl } /remotes/${ aliceRemote . substring (
144
+ 8 ,
145
+ ) } /tree/main`;
146
+
147
+ await page . goto ( projectTreeURL ) ;
148
+ await expect ( page ) . toHaveURL ( projectTreeURL ) ;
149
+
150
+ await page . getByText ( ".hidden" ) . click ( ) ;
151
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /.hidden` ) ;
100
152
101
153
await page . getByText ( "bin/" ) . click ( ) ;
102
154
await page . getByText ( "true" ) . click ( ) ;
103
- await expect ( page ) . toHaveURL ( `${ projectTreeURL } /tree/main/ bin/true` ) ;
155
+ await expect ( page ) . toHaveURL ( `${ projectTreeURL } /bin/true` ) ;
104
156
105
157
await expectBackAndForwardNavigationWorks (
106
- `${ projectTreeURL } /tree/main/ .hidden` ,
158
+ `${ projectTreeURL } /.hidden` ,
107
159
page ,
108
160
) ;
109
161
await expectUrlPersistsReload ( page ) ;
0 commit comments