16719: Don't try to click something to force logout, just reload the page.
[arvados-workbench2.git] / cypress / integration / login.spec.js
index c30124d8f2f9dfae5f63114953d82ac2640a383c..25c8cd4b8a4179cf9f60ad2e7905e8204fac4788 100644 (file)
@@ -78,6 +78,25 @@ describe('Login tests', function() {
             `${activeUser.user.first_name} ${activeUser.user.last_name}`);
     })
 
+    it('logs out when token no longer valid', function() {
+        // Log in
+        cy.visit(`/token/?api_token=${activeUser.token}`);
+        cy.url().should('contain', '/projects/');
+        cy.get('div#root').should('contain', 'Arvados Workbench (zzzzz)');
+        cy.get('div#root').should('not.contain', 'Your account is inactive');
+        // Invalidate own token.
+        const tokenUuid = activeUser.token.split('/')[1];
+        cy.doRequest('PUT', `/arvados/v1/api_client_authorizations/${tokenUuid}`, {
+            id: tokenUuid,
+            api_client_authorization: JSON.stringify({
+                api_token: `randomToken${Math.floor(Math.random() * Math.floor(999999))}`
+            })
+        }, null, activeUser.token, true);
+        // Should log the user out.
+        cy.visit('/');
+        cy.get('div#root').should('contain', 'Please log in');
+    })
+
     it('logs in successfully with valid admin token', function() {
         cy.visit(`/token/?api_token=${adminUser.token}`);
         cy.url().should('contain', '/projects/');