Skip to content

Commit

Permalink
Merge pull request #50179 from nextcloud/test/widget-perf
Browse files Browse the repository at this point in the history
test(dashboard): Add regression test for loading unneeded data
  • Loading branch information
susnux authored Jan 16, 2025
2 parents b2d1df7 + 2556da5 commit f40dd53
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions cypress/e2e/dashboard/widget-performance.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*!
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/

/**
* Regression test of https://github.com/nextcloud/server/issues/48403
* Ensure that only visible widget data is loaded
*/
describe('dashboard: performance', () => {
before(() => {
cy.createRandomUser().then((user) => {
// Enable one widget
cy.runOccCommand(`user:setting -- '${user.userId}' dashboard layout files-favorites`)
cy.login(user)
})
})

it('Only load needed widgets', () => {
cy.intercept('**/dashboard/api/v2/widget-items?widgets*').as('loadedWidgets')

const now = new Date(2025, 0, 14, 15)
cy.clock(now)

// The dashboard is loaded
cy.visit('/apps/dashboard')
cy.get('#app-dashboard')
.should('be.visible')
.contains('Good afternoon')
.should('be.visible')

// Wait that one data is loaded (ensure the API works), this should be the favorite files.
cy.wait('@loadedWidgets')
// Wait and check no requests are made (ensure that the user statuses data is NOT loaded)
// eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(4000, { timeout: 8000 })
cy.get('@loadedWidgets.all').then((interceptions) => {
expect(interceptions).to.have.length(1)
})
})
})

0 comments on commit f40dd53

Please sign in to comment.