From bcec37b1334bbacbd0f4ec76bff4923f96927fb2 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Fri, 10 Nov 2023 09:06:09 +0100 Subject: [PATCH] e2e submodules --- .../src/tests/workspace_git.test.ts | 75 ++++++++++++++++++- .../workspace/src/lib/actions/workspace.ts | 5 ++ .../workspace/src/lib/remix-ui-workspace.tsx | 2 +- 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/apps/remix-ide-e2e/src/tests/workspace_git.test.ts b/apps/remix-ide-e2e/src/tests/workspace_git.test.ts index 6bc35fe9d4..3649eb10be 100644 --- a/apps/remix-ide-e2e/src/tests/workspace_git.test.ts +++ b/apps/remix-ide-e2e/src/tests/workspace_git.test.ts @@ -255,5 +255,76 @@ module.exports = { // GIT BRANCHES E2E END - tearDown: sauce -} \ No newline at end of file + // GIT SUBMODULES E2E START + + 'Should clone a repository with submodules #group4': function (browser: NightwatchBrowser) { + browser + .clickLaunchIcon('filePanel') + .waitForElementVisible('[data-id="workspaceMenuDropdown"]') + .click('[data-id="workspaceMenuDropdown"]') + .waitForElementVisible('[data-id="workspaceclone"]') + .click('[data-id="workspaceclone"]') + .waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') + .click('[data-id="fileSystemModalDialogModalBody-react"]') + .waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') + .setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/bunsenstraat/test-branch-submodule') + .click('[data-id="fileSystem-modal-footer-ok-react"]') + .waitForElementPresent('.fa-spinner') + .waitForElementNotPresent('.fa-spinner') + .waitForElementVisible('*[data-id="treeViewLitreeViewItem.git"]') + .waitForElementContainsText('[data-id="workspacesSelect"]', 'test-branch-submodule') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemplugins"]') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemwebsite"]') + .pause(2000) + .click('[data-id="treeViewDivtreeViewItemwebsite"]') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemwebsite/index.html"]') + .click('[data-id="treeViewDivtreeViewItemplugins"]') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemplugins/README.md"]') + .waitForElementVisible('[data-id="updatesubmodules"]') + }, + 'When swicthing branches the submodules should dissappear': function (browser: NightwatchBrowser) { + browser + .waitForElementVisible('[data-id="workspaceGitBranchesDropdown"]') + .click('[data-id="workspaceGitBranchesDropdown"]') + .waitForElementVisible('[data-id="custom-dropdown-menu"]') + .waitForElementContainsText('[data-id="custom-dropdown-items"]', 'origin/second') + .waitForElementPresent('[data-id="workspaceGit-origin/second"]') + .click('[data-id="workspaceGit-origin/second"]') + .waitForElementNotPresent('[data-id="treeViewDivtreeViewItemplugins"]') + .waitForElementNotPresent('[data-id="treeViewDivtreeViewItemwebsite"]') + }, + 'When swicthing to main update the modules': function (browser: NightwatchBrowser) { + browser + .waitForElementVisible('[data-id="workspaceGitBranchesDropdown"]') + .click('[data-id="workspaceGitBranchesDropdown"]') + .waitForElementVisible('[data-id="custom-dropdown-menu"]') + .waitForElementContainsText('[data-id="custom-dropdown-items"]', 'origin/main') + .waitForElementPresent('[data-id="workspaceGit-origin/main"]') + .click('[data-id="workspaceGit-origin/main"]') + .waitForElementVisible('[data-id="updatesubmodules"]') + .click('[data-id="updatesubmodules"]') + .waitForElementPresent('.fa-spinner') + .waitForElementNotPresent('.fa-spinner') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemplugins"]') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemwebsite"]') + .pause(2000) + .click('[data-id="treeViewDivtreeViewItemwebsite"]') + .click('[data-id="treeViewDivtreeViewItemwebsite"]') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemwebsite/index.html"]') + .click('[data-id="treeViewDivtreeViewItemplugins"]') + .click('[data-id="treeViewDivtreeViewItemplugins"]') + .waitForElementVisible('[data-id="treeViewDivtreeViewItemplugins/README.md"]') + .waitForElementVisible('[data-id="updatesubmodules"]') + }, + + tearDown: sauce, +} + + +const gitmodules = `[submodule "subdemo3"] +path = subdemo3 +url = https://github.com/bunsenstraat/empty3 +[submodule "testactionsub"] +path = testactionsub +url = https://github.com/bunsenstraat/testactions +` \ No newline at end of file diff --git a/libs/remix-ui/workspace/src/lib/actions/workspace.ts b/libs/remix-ui/workspace/src/lib/actions/workspace.ts index 67a456ca6d..e2d4ed4658 100644 --- a/libs/remix-ui/workspace/src/lib/actions/workspace.ts +++ b/libs/remix-ui/workspace/src/lib/actions/workspace.ts @@ -78,6 +78,11 @@ export const setPlugin = (filePanelPlugin, reducerDispatch) => { plugin.on('settings', 'configChanged', async () => { await getGitConfig() }) + plugin.on('fileManager', 'fileAdded', async (filePath: string) => { + if(filePath.includes('.gitmodules')) { + await checkGit() + } + }) getGitConfig() } diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index c1e5f9baab..1e203d994d 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -1136,7 +1136,7 @@ export function Workspace() { {selectedWorkspace.hasGitSubmodules?
{global.fs.browser.isRequestingCloning ?
updating submodules
: -
update submodules
} +
update submodules
}
: null}