Skip to content

Commit cf40d9c

Browse files
authored
Feat rollup (#208)
* chore: disable edit * chore: disable field edit * chore: fix relation test * chore: fix test * chore: i18
1 parent cfbbc44 commit cf40d9c

File tree

153 files changed

+12146
-774
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+12146
-774
lines changed

.github/workflows/integration-test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99

1010
env:
1111
CLOUD_VERSION: latest-amd64
12+
APPFLOWY_ENABLE_RELATION_ROLLUP_EDIT: "true"
1213

1314
jobs:
1415
# Run different test categories in parallel for 6x speedup
@@ -208,4 +209,4 @@ jobs:
208209
pkill -f "bun deploy/server.ts" 2>/dev/null || true
209210
210211
# Stop Docker services
211-
cd AppFlowy-Cloud-Premium && docker compose down || true
212+
cd AppFlowy-Cloud-Premium && docker compose down || true

cypress.config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default defineConfig({
1313
APPFLOWY_BASE_URL: process.env.APPFLOWY_BASE_URL || 'http://localhost',
1414
APPFLOWY_GOTRUE_BASE_URL: process.env.APPFLOWY_GOTRUE_BASE_URL || 'http://localhost/gotrue',
1515
APPFLOWY_WS_BASE_URL: process.env.APPFLOWY_WS_BASE_URL || 'ws://localhost/ws/v2',
16+
APPFLOWY_ENABLE_RELATION_ROLLUP_EDIT: process.env.APPFLOWY_ENABLE_RELATION_ROLLUP_EDIT || 'false',
1617
GOTRUE_ADMIN_EMAIL: process.env.GOTRUE_ADMIN_EMAIL || 'admin@example.com',
1718
GOTRUE_ADMIN_PASSWORD: process.env.GOTRUE_ADMIN_PASSWORD || 'password',
1819
},
@@ -64,6 +65,8 @@ export default defineConfig({
6465
config.env.APPFLOWY_BASE_URL = process.env.APPFLOWY_BASE_URL || config.env.APPFLOWY_BASE_URL;
6566
config.env.APPFLOWY_GOTRUE_BASE_URL = process.env.APPFLOWY_GOTRUE_BASE_URL || config.env.APPFLOWY_GOTRUE_BASE_URL;
6667
config.env.APPFLOWY_WS_BASE_URL = process.env.APPFLOWY_WS_BASE_URL || config.env.APPFLOWY_WS_BASE_URL;
68+
config.env.APPFLOWY_ENABLE_RELATION_ROLLUP_EDIT =
69+
process.env.APPFLOWY_ENABLE_RELATION_ROLLUP_EDIT || config.env.APPFLOWY_ENABLE_RELATION_ROLLUP_EDIT;
6770
config.env.GOTRUE_ADMIN_EMAIL = process.env.GOTRUE_ADMIN_EMAIL || config.env.GOTRUE_ADMIN_EMAIL;
6871
config.env.GOTRUE_ADMIN_PASSWORD = process.env.GOTRUE_ADMIN_PASSWORD || config.env.GOTRUE_ADMIN_PASSWORD;
6972

cypress/e2e/database/database-view-tabs.cy.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
33
import { AuthTestUtils } from '../../support/auth-utils';
44
import {
55
AddPageSelectors,
6+
BreadcrumbSelectors,
67
DatabaseViewSelectors,
78
PageSelectors,
89
SpaceSelectors,
@@ -236,6 +237,54 @@ describe('Database View Tabs', () => {
236237
});
237238
});
238239

240+
/**
241+
* Regression test: breadcrumb should reflect the active database tab view.
242+
*/
243+
it('breadcrumb shows active database tab view', () => {
244+
const testEmail = generateRandomEmail();
245+
246+
cy.task('log', `[TEST] Breadcrumb reflects active tab - Email: ${testEmail}`);
247+
248+
cy.visit('/login', { failOnStatusCode: false });
249+
cy.wait(2000);
250+
251+
const authUtils = new AuthTestUtils();
252+
authUtils.signInWithTestUrl(testEmail).then(() => {
253+
cy.url({ timeout: 30000 }).should('include', '/app');
254+
cy.wait(3000);
255+
256+
// Create a Grid database
257+
AddPageSelectors.inlineAddButton().first().click({ force: true });
258+
waitForReactUpdate(1000);
259+
AddPageSelectors.addGridButton().should('be.visible').click({ force: true });
260+
cy.wait(5000);
261+
262+
// Add a Board view
263+
DatabaseViewSelectors.addViewButton().scrollIntoView().click({ force: true });
264+
waitForReactUpdate(500);
265+
cy.get('[role="menu"], [role="listbox"], .MuiMenu-list, .MuiPopover-paper', { timeout: 5000 })
266+
.should('be.visible')
267+
.contains('Board')
268+
.click({ force: true });
269+
waitForReactUpdate(3000);
270+
271+
// Switch to Board tab
272+
DatabaseViewSelectors.viewTab().contains('Board').click({ force: true });
273+
waitForReactUpdate(1000);
274+
DatabaseViewSelectors.activeViewTab().should('contain.text', 'Board');
275+
276+
// Verify breadcrumb shows Board as the active view
277+
BreadcrumbSelectors.navigation()
278+
.find('[data-testid^="breadcrumb-item-"]')
279+
.should('have.length.at.least', 1)
280+
.last()
281+
.should('contain.text', 'Board')
282+
.and('not.contain.text', 'Grid');
283+
284+
cy.task('log', '[TEST COMPLETE] Breadcrumb shows active tab view');
285+
});
286+
});
287+
239288
/**
240289
* Regression test for: newly created views should appear immediately in tab bar.
241290
*

0 commit comments

Comments
 (0)