@@ -24,4 +24,46 @@ test.describe('Acceptance | crate versions page', { tag: '@acceptance' }, () =>
2424 versions = await page . locator ( '[data-test-version]' ) . evaluateAll ( el => el . map ( it => it . dataset . testVersion ) ) ;
2525 expect ( versions ) . toEqual ( [ '0.3.0' , '0.2.1' , '0.2.0' , '0.1.0' ] ) ;
2626 } ) ;
27+
28+ test ( 'shows correct release tracks label after yanking/unyanking' , async ( { page, msw, percy } ) => {
29+ let user = msw . db . user . create ( ) ;
30+ await msw . authenticateAs ( user ) ;
31+
32+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
33+ msw . db . crateOwnership . create ( { crate, user } ) ;
34+
35+ msw . db . version . create ( { crate, num : '0.1.0' , created_at : '2017-01-01' } ) ;
36+ msw . db . version . create ( { crate, num : '0.2.0' , created_at : '2018-01-01' } ) ;
37+ msw . db . version . create ( { crate, num : '0.3.0' , created_at : '2019-01-01' , rust_version : '1.69' } ) ;
38+ msw . db . version . create ( { crate, num : '0.2.1' , created_at : '2020-01-01' } ) ;
39+
40+ await page . goto ( '/crates/nanomsg/versions' ) ;
41+ await expect ( page ) . toHaveURL ( '/crates/nanomsg/versions' ) ;
42+
43+ await expect ( page . locator ( '[data-test-version]' ) ) . toHaveCount ( 4 ) ;
44+ let versions = await page . locator ( '[data-test-version]' ) . evaluateAll ( el => el . map ( it => it . dataset . testVersion ) ) ;
45+ expect ( versions ) . toEqual ( [ '0.2.1' , '0.3.0' , '0.2.0' , '0.1.0' ] ) ;
46+
47+ let v021 = page . locator ( '[data-test-version="0.2.1"]' ) ;
48+ let v020 = page . locator ( '[data-test-version="0.2.0"]' ) ;
49+
50+ await expect ( v021 ) . toHaveClass ( / .* l a t e s t / ) ;
51+ await expect ( v021 ) . not . toHaveClass ( / .y a n k e d / ) ;
52+ await expect ( v020 ) . not . toHaveClass ( / .* l a t e s t / ) ;
53+ await expect ( v020 ) . not . toHaveClass ( / .y a n k e d / ) ;
54+
55+ // yanking
56+ await page . locator ( '[data-test-version-yank-button="0.2.1"]' ) . click ( ) ;
57+ await expect ( v021 ) . not . toHaveClass ( / .* l a t e s t / ) ;
58+ await expect ( v021 ) . toHaveClass ( / .y a n k e d / ) ;
59+ await expect ( v020 ) . toHaveClass ( / .* l a t e s t / ) ;
60+ await expect ( v020 ) . not . toHaveClass ( / .y a n k e d / ) ;
61+
62+ // unyanking
63+ await page . locator ( '[data-test-version-unyank-button="0.2.1"]' ) . click ( ) ;
64+ await expect ( v021 ) . toHaveClass ( / .* l a t e s t / ) ;
65+ await expect ( v021 ) . not . toHaveClass ( / .y a n k e d / ) ;
66+ await expect ( v020 ) . not . toHaveClass ( / .* l a t e s t / ) ;
67+ await expect ( v020 ) . not . toHaveClass ( / .y a n k e d / ) ;
68+ } ) ;
2769} ) ;
0 commit comments