TidGi-Desktop/features/tidgiMiniWindowWorkspace.feature
lin onetwo c2be8e4186
Fix/sub wiki tag tree (#667)
* fix: different out path on macos

* fix: let go hibernation promise, so it's faster on macos

* log marker [test-id-TIDGI_MINI_WINDOW_CREATED]

* Skip registerShortcutByKey  in test

* fix: mini window on mac

* Remove useless log marker

* Update handleAttachToTidgiMiniWindow.ts

* fix: log marker check all log files

* lint

* fix: open in new window now showing wiki title

* Update package.json

* feat: basic load and save to sub wiki using in-tag-tree-of

* fix: load sub-wiki content and prevent echo

* fix: test and ui logic

* test: refactor subwiki test logic to a file

* refactor: shorten steps by using dedicated step, and test underlying micro steps

* fix: review

* refactor: remove outdated method signature

* test: unit cover adaptor subwiki routing

* Update FileSystemAdaptor.routing.test.ts

* fix: merge issue
2025-12-07 03:31:34 +08:00

144 lines
No EOL
9.4 KiB
Gherkin

@tidgi-mini-window
Feature: TidGi Mini Window Workspace Switching
As a user with tidgi mini window already enabled
I want to test tidgi mini window behavior with different workspace configurations
So that I can verify workspace switching and fixed workspace features
Background:
Given I configure tidgi mini window with shortcut
Given I cleanup test wiki so it could create a new one on start
Then I launch the TidGi application
And I wait for the page to load completely
Then I switch to "main" window
# Wait for git init to complete (early sync point, ~1s after app start)
Then I wait for "git init complete" log marker "[test-id-git-init-complete]"
# Wait for wiki worker to start (~3s after git-init-complete)
Then I wait for "wiki worker started" log marker "[test-id-WIKI_WORKER_STARTED]"
# Wait for all workspace views to be initialized (~4s after wiki worker started)
Then I wait for "all workspace views initialized" log marker "[test-id-ALL_WORKSPACE_VIEW_INITIALIZED]"
Scenario: TidGi mini window syncs with main window switching to agent workspace
# Switch main window to agent workspace
When I click on an "agent workspace button" element with selector "[data-testid='workspace-agent']"
# Verify tidgi mini window exists in background (created but not visible)
Then I wait for "tidgi mini window created" log marker "[test-id-TIDGI_MINI_WINDOW_CREATED]"
Then I confirm the "tidgiMiniWindow" window exists
And I confirm the "tidgiMiniWindow" window not visible
When I press the key combination "CommandOrControl+Shift+M"
And I confirm the "tidgiMiniWindow" window visible
And I confirm the "tidgiMiniWindow" window browser view is not positioned within visible window bounds
Then I switch to "tidgiMiniWindow" window
# In sync mode, browser view shows the current active workspace (agent), sidebar is hidden
And I should see a "new tab button" element with selector "[data-tab-id='new-tab-button']"
Scenario: TidGi mini window with fixed agent workspace shows no view and fixed wiki workspace shows browser view
# Configure fixed agent workspace through UI
And I click on an "open preferences button" element with selector "#open-preferences-button"
And I switch to "preferences" window
When I click on "tidgi mini window section and disable sync workspace switch" elements with selectors:
| [data-testid='preference-section-tidgiMiniWindow'] |
| [data-testid='tidgi-mini-window-sync-workspace-switch'] |
# Enable sidebar to see workspace buttons
And I click on a "Enable sidebar toggle switch" element with selector "[data-testid='sidebar-on-tidgi-mini-window-switch']"
And I wait for 0.2 seconds
# Select agent workspace (which is a page type workspace)
And I select "agent" from MUI Select with test id "tidgi-mini-window-fixed-workspace-select"
# Open tidgi mini window - should show agent workspace and no browser view
When I press the key combination "CommandOrControl+Shift+M"
And I confirm the "tidgiMiniWindow" window visible
And I confirm the "tidgiMiniWindow" window browser view is not positioned within visible window bounds
Then I switch to "tidgiMiniWindow" window
# Verify sidebar is visible
And I should see a "main sidebar" element with selector "[data-testid='main-sidebar']"
# Verify agent workspace is active
And I should see a "agent workspace active button" element with selector "[data-testid='workspace-agent'][data-active='true']"
# Close tidgi mini window and switch to wiki workspace
And I wait for 0.2 seconds
Then I switch to "preferences" window
When I press the key combination "CommandOrControl+Shift+M"
And I wait for 1 seconds
And I confirm the "tidgiMiniWindow" window not visible
# Get the first wiki workspace ID and select it
And I select "wiki" from MUI Select with test id "tidgi-mini-window-fixed-workspace-select"
And I wait for 0.2 seconds
# Clear previous occurrences of the log marker before waiting for a new one
And I clear log lines containing "[test-id-TIDGI_MINI_WINDOW_SHOWN]"
# Open tidgi mini window again - should show wiki workspace with browser view
When I press the key combination "CommandOrControl+Shift+M"
# Wait for the view to be loaded and window to be shown
Then I wait for "tidgi mini window shown" log marker "[test-id-TIDGI_MINI_WINDOW_SHOWN]"
And I confirm the "tidgiMiniWindow" window visible
And I confirm the "tidgiMiniWindow" window browser view is positioned within visible window bounds
Then I switch to "tidgiMiniWindow" window
# Verify sidebar is visible
And I should see a "main sidebar" element with selector "[data-testid='main-sidebar']"
# Verify browser view content is visible and wiki workspace is active
And I should see " TiddlyWiki" in the browser view content
And I should see a "wiki workspace active button" element with selector "[data-active='true']"
Scenario: Enabling sync workspace automatically hides sidebar
# Configure tidgi mini window with fixed workspace first
When I click on "agent workspace button and open preferences button" elements with selectors:
| [data-testid='workspace-agent'] |
| #open-preferences-button |
And I switch to "preferences" window
When I click on "tidgi mini window section and disable sync workspace switch" elements with selectors:
| [data-testid='preference-section-tidgiMiniWindow'] |
| [data-testid='tidgi-mini-window-sync-workspace-switch'] |
And I should see a "sidebar toggle switch" element with selector "[data-testid='sidebar-on-tidgi-mini-window-switch']"
# Enable sidebar to see it in mini window
And I click on a "Enable sidebar toggle switch" element with selector "[data-testid='sidebar-on-tidgi-mini-window-switch']"
# Open tidgi mini window and verify sidebar is visible
When I press the key combination "CommandOrControl+Shift+M"
# Wait longer for window to appear in full test run
And I wait for 1 seconds for "tidgi mini window to appear"
And I confirm the "tidgiMiniWindow" window visible
And I switch to "tidgiMiniWindow" window
And I should see a "main sidebar" element with selector "[data-testid='main-sidebar']"
# Close mini window and go back to preferences
Then I switch to "preferences" window
When I press the key combination "CommandOrControl+Shift+M"
And I confirm the "tidgiMiniWindow" window not visible
# Now enable sync workspace - should automatically hide sidebar
When I click on a "Enable tidgi mini window sync workspace switch" element with selector "[data-testid='tidgi-mini-window-sync-workspace-switch']"
# Verify sidebar option is now hidden
And I should not see "sidebar toggle switch and fixed workspace select" elements with selectors:
| [data-testid='sidebar-on-tidgi-mini-window-switch'] |
| [data-testid='tidgi-mini-window-fixed-workspace-select'] |
# Open tidgi mini window in sync mode - should sync to agent workspace
When I press the key combination "CommandOrControl+Shift+M"
And I confirm the "tidgiMiniWindow" window visible
And I switch to "tidgiMiniWindow" window
# In sync mode, sidebar should not be visible (automatically hidden)
And I should not see a "main sidebar" element with selector "[data-testid='main-sidebar']"
Scenario: Clicking workspace button in mini window updates fixed workspace ID
# First click on guide workspace in main window to set a different active workspace
Then I switch to "main" window
When I click on a "guide workspace button" element with selector "[data-testid='workspace-guide']"
And I wait for 0.2 seconds
# Configure tidgi mini window with fixed workspace
And I click on an "open preferences button" element with selector "#open-preferences-button"
And I switch to "preferences" window
When I click on "tidgi mini window section and disable sync workspace switch" elements with selectors:
| [data-testid='preference-section-tidgiMiniWindow'] |
| [data-testid='tidgi-mini-window-sync-workspace-switch'] |
# Enable sidebar to see workspace buttons
And I click on a "Enable sidebar toggle switch" element with selector "[data-testid='sidebar-on-tidgi-mini-window-switch']"
And I wait for 0.2 seconds
# Select agent workspace as fixed workspace
And I select "agent" from MUI Select with test id "tidgi-mini-window-fixed-workspace-select"
And I wait for 0.2 seconds
# Open tidgi mini window
When I press the key combination "CommandOrControl+Shift+M"
And I confirm the "tidgiMiniWindow" window visible
Then I switch to "tidgiMiniWindow" window
# Verify agent workspace is active initially
And I should see a "agent workspace button with active state" element with selector "[data-testid='workspace-agent'][data-active='true']"
# Click on guide workspace button to update fixed workspace ID
When I click on a "guide workspace button" element with selector "[data-testid='workspace-guide']"
And I wait for 0.2 seconds
# Verify guide workspace is now active and agent workspace is no longer active
And I should see "guide workspace button with active state and agent workspace button without active state" elements with selectors:
| [data-testid='workspace-guide'][data-active='true'] |
| [data-testid='workspace-agent'][data-active='false'] |