21988: added wait for async file deletion in test
[arvados.git] / services / workbench2 / cypress / e2e / auth-middleware.cy.js
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 describe("AuthMiddleware", () => {
6     let activeUser;
7     let adminUser;
8
9     before(function () {
10         // Only set up common users once. These aren't set up as aliases because
11         // aliases are cleaned up after every test. Also it doesn't make sense
12         // to set the same users on beforeEach() over and over again, so we
13         // separate a little from Cypress' 'Best Practices' here.
14         cy.getUser("admin", "Admin", "User", true, true)
15             .as("adminUser")
16             .then(function () {
17                 adminUser = this.adminUser;
18             });
19         cy.getUser("user", "Active", "User", false, true)
20             .as("activeUser")
21             .then(function () {
22                 activeUser = this.activeUser;
23             });
24     });
25
26     it("handles LOGOUT action", () => {
27         cy.loginAs(activeUser);
28         cy.waitForDom();
29         // verify that the token is stored in localStorage
30         cy.window().then(win => {
31             expect(win.localStorage.getItem('apiToken')).to.equal(activeUser.token);
32         });
33
34             // logout
35             cy.get('[aria-label="Account Management"]').click();
36             cy.get('[data-cy=logout-menuitem]').click();
37
38             cy.window().then(win => {
39                 // verify that logout has been successful
40                 cy.contains("Please log in.").should("exist"); 
41                 expect(win.localStorage.getItem('apiToken')).to.be.null;
42             });
43     });
44 });