зеркало из https://github.com/nextcloud/text.git
fix: cypress login with new session feature
Use the new session feature to create and reuse sessions: https://docs.cypress.io/api/commands/session The first time `login` with a given name is called the steps described in the login function are performed and cookies and localstorage are cached. The next time `login` is called with the same name cookies and localStorage are restored and used again. This allows us to keep fast test runs while still separating the tests more cleanly. The old logout command was broken because of the way we used `Cypress.Cookies.defaults({ preserve })` before: Cypress runs all the `cy.*` commands during initialization and builds a list of commands that are then executed during the tests. However `Cypress.Cookies.defaults` is evaluated when preparing the list not while performing the actual steps. Signed-off-by: Azul <azul@riseup.net>
This commit is contained in:
Родитель
75876791e2
Коммит
1e5259bdf7
|
@ -2,5 +2,6 @@
|
|||
"baseUrl": "https://localhost:8081/index.php/",
|
||||
"projectId": "hx9gqy",
|
||||
"viewportWidth": 1280,
|
||||
"viewportHeight": 720
|
||||
"viewportHeight": 720,
|
||||
"experimentalSessionSupport": true
|
||||
}
|
||||
|
|
|
@ -21,12 +21,9 @@
|
|||
*/
|
||||
|
||||
describe('Files default view', function() {
|
||||
before(function() {
|
||||
beforeEach(function() {
|
||||
cy.login('admin', 'admin')
|
||||
})
|
||||
after(function() {
|
||||
cy.logout()
|
||||
})
|
||||
|
||||
it('See the default files list', function() {
|
||||
cy.get('#fileList tr').should('contain', 'welcome.txt')
|
||||
|
|
|
@ -51,12 +51,8 @@ describe('Open test.md in viewer', function() {
|
|||
cy.get('#fileList tr[data-file="test.md"]', {timeout: 10000})
|
||||
.should('contain', 'test.md')
|
||||
})
|
||||
after(function () {
|
||||
cy.on('uncaught:exception', (err, runnable) => {
|
||||
return false
|
||||
})
|
||||
cy.visit('/apps/files')
|
||||
cy.logout()
|
||||
beforeEach(function() {
|
||||
cy.login(randUser, 'password')
|
||||
})
|
||||
|
||||
it('Shares the file as a public read only link', function () {
|
||||
|
|
|
@ -32,13 +32,10 @@ describe('Open test.md in viewer', function() {
|
|||
|
||||
// Upload test files
|
||||
cy.uploadFile('test.md', 'text/markdown')
|
||||
cy.visit('/apps/files')
|
||||
|
||||
// wait a bit for things to be settled
|
||||
cy.wait(1000)
|
||||
})
|
||||
after(function() {
|
||||
cy.logout()
|
||||
|
||||
beforeEach(function() {
|
||||
cy.login(randUser, 'password')
|
||||
})
|
||||
|
||||
it('See test.md in the list', function() {
|
||||
|
@ -47,7 +44,6 @@ describe('Open test.md in viewer', function() {
|
|||
})
|
||||
|
||||
it('Open the viewer on file click', function() {
|
||||
cy.visit('/apps/files')
|
||||
cy.openFile('test.md')
|
||||
cy.get('#viewer').should('be.visible')
|
||||
cy.get('#viewer .modal-title').should('contain', 'test.md')
|
||||
|
|
|
@ -26,27 +26,19 @@ const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
|
|||
Cypress.env('baseUrl', url)
|
||||
|
||||
Cypress.Commands.add('login', (user, password, route = '/apps/files') => {
|
||||
cy.clearCookies()
|
||||
Cypress.Cookies.defaults({
|
||||
preserve: /^(oc|nc)/
|
||||
cy.session(user, function () {
|
||||
cy.visit(route)
|
||||
cy.get('input[name=user]').type(user)
|
||||
cy.get('input[name=password]').type(password)
|
||||
cy.get('#submit-wrapper input[type=submit]').click()
|
||||
cy.url().should('include', route)
|
||||
})
|
||||
// in case the session already existed but we are on a different route...
|
||||
cy.visit(route)
|
||||
cy.get('input[name=user]').type(user)
|
||||
cy.get('input[name=password]').type(password)
|
||||
cy.get('#submit-wrapper input[type=submit]').click()
|
||||
cy.url().should('include', route)
|
||||
})
|
||||
|
||||
Cypress.Commands.add('logout', () => {
|
||||
Cypress.Cookies.defaults({
|
||||
preserve: []
|
||||
})
|
||||
|
||||
cy.clearLocalStorage()
|
||||
cy.clearCookies()
|
||||
|
||||
Cypress.Cookies.defaults({
|
||||
preserve: /^(oc|nc)/
|
||||
Cypress.Commands.add('logout', (route = '/') => {
|
||||
cy.session('_guest', function () {
|
||||
})
|
||||
})
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче