@@ -68,4 +68,31 @@ test.describe('Acceptance | crate versions page', { tag: '@acceptance' }, () =>
6868 await expect ( v020 ) . not . toHaveClass ( / .* l a t e s t / ) ;
6969 await expect ( v020 ) . not . toHaveClass ( / .y a n k e d / ) ;
7070 } ) ;
71+
72+ test ( 'triggers a rebuild for crate documentation' , async ( { page, msw } ) => {
73+ let user = msw . db . user . create ( ) ;
74+ await msw . authenticateAs ( user ) ;
75+
76+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
77+ msw . db . crateOwnership . create ( { crate, user } ) ;
78+
79+ msw . db . version . create ( { crate, num : '0.1.0' , created_at : '2017-01-01' } ) ;
80+ msw . db . version . create ( { crate, num : '0.2.0' , created_at : '2018-01-01' } ) ;
81+ msw . db . version . create ( { crate, num : '0.3.0' , created_at : '2019-01-01' , rust_version : '1.69' } ) ;
82+ msw . db . version . create ( { crate, num : '0.2.1' , created_at : '2020-01-01' } ) ;
83+
84+ await page . goto ( '/crates/nanomsg/versions' ) ;
85+ await expect ( page ) . toHaveURL ( '/crates/nanomsg/versions' ) ;
86+
87+ await expect ( page . locator ( '[data-test-version]' ) ) . toHaveCount ( 4 ) ;
88+ let versions = await page . locator ( '[data-test-version]' ) . evaluateAll ( el => el . map ( it => it . dataset . testVersion ) ) ;
89+ expect ( versions ) . toEqual ( [ '0.2.1' , '0.3.0' , '0.2.0' , '0.1.0' ] ) ;
90+
91+ let v021 = page . locator ( '[data-test-version="0.2.1"]' ) ;
92+ await v021 . locator ( '[data-test-actions-toggle]' ) . click ( ) ;
93+ await v021 . getByRole ( 'button' , { name : 'Rebuild Docs' } ) . click ( ) ;
94+
95+ let message = 'Docs rebuild task was enqueued successfully!' ;
96+ await expect ( page . locator ( '[data-test-notification-message="success"]' ) ) . toHaveText ( message ) ;
97+ } ) ;
7198} ) ;
0 commit comments