Skip to content

Commit

Permalink
fix(cypress): wait for ressource load
Browse files Browse the repository at this point in the history
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>

Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
  • Loading branch information
skjnldsv authored and nextcloud-command committed Sep 6, 2024
1 parent 0d82335 commit f82afea
Show file tree
Hide file tree
Showing 19 changed files with 6,078 additions and 175,018 deletions.
1 change: 0 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"globals": {
"appName": true,
"appVersion": true,
"INJECT_CYPRESS_FONT": true,
"PLYR_ICONS": true,
"oc_defaults": true,
"__dirname": true
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
- name: Install node dependencies & build app
run: |
npm ci
TESTING=true npm run build --if-present
npm run build --if-present
- name: Save context
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
Expand Down Expand Up @@ -119,7 +119,6 @@ jobs:
# https://github.com/cypress-io/github-action/issues/124
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
# Needed for some specific code workarounds
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
Expand Down
1 change: 1 addition & 0 deletions css/index-vVhCG86e.chunk.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions css/main-BT4PqNwX.chunk.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion css/viewer-main.css
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/* extracted by css-entry-points-plugin */
@import './main-DELUg34d.chunk.css';
@import './main-BT4PqNwX.chunk.css';
28 changes: 21 additions & 7 deletions cypress/e2e/visual-regression.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
*
*/

describe('Visual regression tests ', function() {
describe('Visual regression tests', function() {
let randUser

before(function() {
Expand All @@ -36,18 +36,28 @@ describe('Visual regression tests ', function() {
cy.login(user)
cy.visit('/apps/files')
})

cy.window().then((win) => {
// Load roboto font for visual regression consistency
win.loadRoboto = true
win.document.body.style.fontFamily = 'Roboto'
})
})

it('See files in the list', function() {
// TODO: Do we care about the file name being split by a ' ' in the text property?
cy.getFile('test-card.mp4', { timeout: 10000 })
.should('contain', 'test-card .mp4')
cy.getFile('test-card.png', { timeout: 10000 })
.should('contain', 'test-card .png')
})

it('Open the viewer on file click', function() {
cy.intercept('GET', '**/core/preview*').as('image1')
cy.intercept('GET', '/remote.php/dav/files/*/test-card.mp4').as('video')
cy.openFile('test-card.mp4')
cy.wait('@video')
// We preload images, so we can check its loading here and not when clicking next
cy.wait('@image1')
cy.get('body > .viewer').should('be.visible')
})

Expand All @@ -73,7 +83,7 @@ describe('Visual regression tests ', function() {
.and('not.have.class', 'icon-loading')
})

it('Take test-card.mp4 screenshot', function() {
it('Take test-card.mp4 screenshot', { retries: 0 }, function() {
cy.get('body > .viewer .modal-container .viewer__file.viewer__file--active video').then(video => {
video.get(0).pause()
video.get(0).currentTime = 1
Expand All @@ -99,14 +109,17 @@ describe('Visual regression tests ', function() {
.and('not.have.class', 'icon-loading')
})

it('Take test-card.png screenshot', function() {
it('Take test-card.png screenshot', { retries: 0 }, function() {
cy.compareSnapshot('image')
})

it('Close and open image again', function() {
cy.get('body > .viewer button.header-close').click()
cy.get('body > .viewer').should('not.exist')

// No need to intercept the request again, it's cached
cy.openFile('test-card.png')

cy.get('body > .viewer').should('be.visible')
cy.get('body > .viewer .modal-header__name').should('contain', 'test-card.png')
cy.get('body > .viewer .modal-container img').should('have.length', 1)
Expand All @@ -122,7 +135,7 @@ describe('Visual regression tests ', function() {
.and('not.have.class', 'icon-loading')
})

it('Take test-card.png screenshot 2', function() {
it('Take test-card.png screenshot 2', { retries: 0 }, function() {
cy.compareSnapshot('image2')
})

Expand All @@ -136,13 +149,14 @@ describe('Visual regression tests ', function() {
hasPreview: false,
fileid: 123,
}

cy.intercept('GET', '/core/img/favicon.png').as('favicon')
cy.window().then((win) => {
win.OCA.Viewer.open({
fileInfo,
list: [fileInfo],
})
})
cy.wait('@favicon')

cy.get('body > .viewer .modal-container img').should('have.length', 1)
cy.get('body > .viewer .modal-container img').should('have.attr', 'src')
Expand All @@ -157,7 +171,7 @@ describe('Visual regression tests ', function() {
.and('not.have.class', 'icon-loading')
})

it('Take non-dav logo.png screenshot', function() {
it('Take non-dav logo.png screenshot', { retries: 0 }, function() {
cy.compareSnapshot('non-dav')
})
})
Loading

0 comments on commit f82afea

Please sign in to comment.