Fix e2e tests

Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
Louis Chemineau 2022-10-10 20:08:24 +02:00
parent 912dc1976e
commit b93db5fc8e
3 changed files with 40 additions and 44 deletions

View File

@ -21,9 +21,9 @@
*/
import { randHash } from '../utils'
const randUser = randHash()
const randUser2 = randHash()
const randUser3 = randHash()
const alice = `alice_${randHash()}`
const bob = `bob_${randHash()}`
const charlie = `charlie_${randHash()}`
const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
Cypress.on('uncaught:exception', (err) => {
@ -35,30 +35,30 @@ Cypress.on('uncaught:exception', (err) => {
describe('Manage shared albums', () => {
before(() => {
cy.visit('')
cy.logout()
cy.nextcloudCreateUser(randUser, 'password')
cy.nextcloudCreateUser(randUser2, 'password')
cy.nextcloudCreateUser(randUser3, 'password')
cy.nextcloudCreateUser(alice, 'password')
cy.nextcloudCreateUser(bob, 'password')
cy.nextcloudCreateUser(charlie, 'password')
cy.login(randUser2, 'password')
cy.login(bob, 'password')
cy.uploadTestMedia()
cy.logout()
})
beforeEach(() => {
cy.logout()
cy.login(randUser2, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
cy.login(bob, 'password', '/apps/photos/sharedalbums')
})
context('Adding and removing files in a shared album', () => {
before(() => {
cy.logout()
cy.login(randUser, 'password')
cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test1')
cy.addCollaborators([randUser2])
cy.addCollaborators([bob])
cy.logout()
})
@ -86,13 +86,13 @@ describe('Manage shared albums', () => {
context('Download files from a shared album', () => {
before(() => {
cy.logout()
cy.login(randUser, 'password')
cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test2')
cy.addCollaborators([randUser2])
cy.addCollaborators([bob])
cy.logout()
cy.login(randUser2, 'password')
cy.login(bob, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
cy.goToSharedAlbum('shared_album_test2')
cy.addFilesToAlbumFromAlbum('shared_album_test2', [0, 1, 2])
@ -122,10 +122,10 @@ describe('Manage shared albums', () => {
context('Delete a received shared album', () => {
before(() => {
cy.logout()
cy.login(randUser, 'password')
cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test3')
cy.addCollaborators([randUser2])
cy.addCollaborators([bob])
cy.logout()
})
@ -138,52 +138,50 @@ describe('Manage shared albums', () => {
context('Remove a collaborator from an album', () => {
before(() => {
cy.logout()
cy.login(randUser, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.login(alice, 'password', '/apps/photos/albums')
cy.createAnAlbumFromAlbums('shared_album_test4')
cy.addCollaborators([randUser2])
cy.addCollaborators([bob])
cy.logout()
})
it('Remove collaborator from an album', () => {
cy.get('ul.collections__list li').should('have.length', 4)
cy.get('ul.collections__list li')
.should('contain', `shared_album_test4 (${alice})`)
cy.logout()
cy.login(randUser, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos`)
cy.login(alice, 'password', '/apps/photos')
cy.goToAlbum('shared_album_test4')
cy.removeCollaborators([randUser2])
cy.removeCollaborators([bob])
cy.logout()
cy.login(randUser2, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
cy.get('ul.collections__list li').should('have.length', 3)
cy.login(bob, 'password', '/apps/photos/sharedalbums')
cy.get('body')
.should('not.contain', `shared_album_test4 (${alice})`)
})
})
context('Two shared albums with the same name', () => {
before(() => {
cy.logout()
cy.login(randUser, 'password')
cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test5')
cy.addCollaborators([randUser2])
cy.addCollaborators([bob])
cy.logout()
cy.login(randUser3, 'password')
cy.login(charlie, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test5')
cy.addCollaborators([randUser2])
cy.addCollaborators([bob])
cy.logout()
})
it('It should display two shared albums', () => {
cy.get('ul.collections__list li')
.contains(`shared_album_test5 (${randUser})`)
.contains(`shared_album_test5 (${alice})`)
cy.get('ul.collections__list li')
.contains(`shared_album_test5 (${randUser3})`)
.contains(`shared_album_test5 (${charlie})`)
})
})
})

View File

@ -27,7 +27,6 @@ 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)/,
})
@ -39,7 +38,6 @@ Cypress.Commands.add('login', (user, password, route = '/apps/files') => {
})
Cypress.Commands.add('logout', () => {
cy.visit('')
cy.getCookies()
.then(cookies => {
if (cookies.length === 0) {
@ -49,20 +47,19 @@ Cypress.Commands.add('logout', () => {
return cy.get("body")
.then($body => {
const logout = $body.find('#expanddiv li[data-id="logout"] a')
if (logout.length > 0) {
cy.log('Loging out...')
cy.visit(logout[0].href)
} else {
cy.log('Nothing')
const $settingsButton = $body.find('#settings #expand')
if ($settingsButton.length === 0) {
cy.log("Not logged in.")
return
}
$settingsButton.click()
cy.contains('Log out').click()
})
})
})
Cypress.Commands.add('nextcloudCreateUser', (user, password) => {
cy.clearCookies()
cy.visit('/')
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/ocs/v1.php/cloud/users?format=json`,
@ -78,6 +75,7 @@ Cypress.Commands.add('nextcloudCreateUser', (user, password) => {
Authorization: `Basic ${Buffer.from('admin:admin').toString('base64')}`,
},
})
cy.clearCookies()
})
Cypress.Commands.add('uploadTestMedia', () => {

View File

@ -424,7 +424,7 @@ class AlbumMapper {
// Suffix album name with the album owner to prevent duplicates.
// Not done for public link as it would like owner's uid.
if ($collaboratorType !== self::TYPE_LINK) {
$row['album_name'].' ('.$row['album_user'].')';
$albumName = $row['album_name'].' ('.$row['album_user'].')';
}
$albumsById[$albumId] = new AlbumInfo($albumId, $row['album_user'], $albumName, $row['location'], (int)$row['created'], (int)$row['last_added_photo']);
}