aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cypress/e2e/dashboard/widget-performance.cy.ts37
1 files changed, 37 insertions, 0 deletions
diff --git a/cypress/e2e/dashboard/widget-performance.cy.ts b/cypress/e2e/dashboard/widget-performance.cy.ts
new file mode 100644
index 00000000000..e5793fa40e1
--- /dev/null
+++ b/cypress/e2e/dashboard/widget-performance.cy.ts
@@ -0,0 +1,37 @@
+/*!
+ * 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) => {
+ cy.login(user)
+ })
+ })
+
+ it('Only load needed widgets', () => {
+ cy.intercept('**/dashboard/api/v2/widget-items?widgets%5B%5D=user_status').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 and check no requests are made
+ // eslint-disable-next-line cypress/no-unnecessary-waiting
+ cy.wait(4000, { timeout: 8000 })
+ cy.get('@loadedWidgets.all').then((interceptions) => {
+ expect(interceptions).to.have.length(0)
+ })
+ })
+})