Skip to content

Commit

Permalink
fixup! Add location grouping views
Browse files Browse the repository at this point in the history
Signed-off-by: Louis Chemineau <louis@chmn.me>
  • Loading branch information
artonge committed Feb 15, 2023
1 parent cf20a5e commit 40cfa80
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 43 deletions.
8 changes: 0 additions & 8 deletions .github/workflows/cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,6 @@ jobs:

cypress:
runs-on: ubuntu-latest
# Specify which version of browser we are testing.
# This prevent hard to track error when the default browser is upgraded and break our tests.
# But this means that we have to regularly update this line.
# https://hub.docker.com/r/cypress/browsers/tags
container: node18.12.0-chrome106-ff106
needs: init

strategy:
Expand All @@ -81,9 +76,6 @@ jobs:
# cypress env
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
tag: ${{ github.event_name }}
# Currently testing on Firefox as chrome does not upload files correctly.
# https://docs.cypress.io/guides/continuous-integration/github-actions#Basic-Setup
browser: firefox
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
Expand Down
59 changes: 28 additions & 31 deletions cypress/e2e/locations.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,41 +19,38 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import { randHash } from '../utils'

const alice = `alice_${randHash()}`
import { uploadTestMedia } from './photosUtils'
import { navigateToLocation, runOccCommand } from './locationsUtils'

const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
Cypress.on('uncaught:exception', (err) => {
/* returning false here prevents Cypress from failing the test */
if (resizeObserverLoopErrRe.test(err.message)) {
return false
}
/* returning false here prevents Cypress from failing the test */
if (resizeObserverLoopErrRe.test(err.message)) {
return false
}
})

describe('Manage locations', () => {
before(function () {
cy.logout()
cy.nextcloudCreateUser(alice, 'password')

cy.login(alice, 'password')
cy.uploadTestMedia()
cy.runOccCommand(`photos:map-media-to-location --user ${alice}`)

// wait a bit for things to be settled
cy.wait(1000)
})

beforeEach(() => {
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/locations`)
})

it('Check that we detect some locations out of the existing files', () => {
cy.get('ul.collections__list li').should('have.length', 4)
})

it('Navigate to location and check that it contains some files', () => {
cy.navigateToLocation('Lauris')
cy.get('.collection li a.file').should('have.length', 1)
})
before(function() {
cy.createRandomUser()
.then((user) => {
uploadTestMedia(user)
runOccCommand(`photos:map-media-to-location --user ${user.userId}`)
cy.login(user)
cy.visit('/apps/photos')
})
})

beforeEach(() => {
cy.visit('apps/photos/locations')
})

it('Check that we detect some locations out of the existing files', () => {
cy.get('ul.collections__list li').should('have.length', 4)
})

it('Navigate to location and check that it contains some files', () => {
navigateToLocation('Lauris')
cy.get('[data-test="media"]').should('have.length', 1)
})
})
34 changes: 34 additions & 0 deletions cypress/e2e/locationsUtils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**
* @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/

export function navigateToCollection(collectionType: string, collectionName: string) {
cy.get('.app-navigation__list').contains(collectionType).click()
cy.get('ul.collections__list').contains(collectionName).click()
}

export function navigateToLocation(locationName: string) {
navigateToCollection('Places', locationName)
}

export function runOccCommand(command: string) {
cy.exec(`docker exec --user www-data nextcloud-cypress-tests-photos php ./occ ${command}`)
}
4 changes: 0 additions & 4 deletions cypress/support/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,3 @@ Cypress.Commands.add('uploadContent', (user, blob, mimeType, target) => {
}
})
})

Cypress.Commands.add('runOccCommand', (command: string) => {
cy.exec(`docker exec --user www-data nextcloud-cypress-tests-server php ./occ ${command}`)
})

0 comments on commit 40cfa80

Please sign in to comment.