diff --git a/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.ts b/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.ts index 03231740a5..36eb781ac7 100644 --- a/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.ts +++ b/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.ts @@ -102,12 +102,12 @@ module.exports = { .scrollAndClick('*[data-id="testTabRunTestsTabRunAction"]') .waitForElementContainsText('*[data-id="testTabSolidityUnitTestsOutput"]', 'SyntaxError: No visibility specified', 120000) .waitForElementContainsText('*[data-id="testTabTestsExecutionStoppedError"]', 'The test execution has been stopped because of error(s) in your test file', 120000) - .click('*[data-id="tests/compilationError_test.sol"]') + .click('#solidityUnittestsOutput *[data-id="tests/compilationError_test.sol"]') .pause(1000) .getEditorValue((content) => browser.assert.ok(content.indexOf('contract failOnCompilation {') !== -1)) // Verify that compilation error is still present after a file is opened // usually, tests result is cleared on opening a new file - .verify.elementPresent('*[data-id="tests/compilationError_test.sol"]') + .verify.elementPresent('#solidityUnittestsOutput *[data-id="tests/compilationError_test.sol"]') }, 'Should fail on deploy': function (browser: NightwatchBrowser) { diff --git a/apps/remix-ide/src/app/panels/tab-proxy.js b/apps/remix-ide/src/app/panels/tab-proxy.js index 5c3e870a42..7c652ab78b 100644 --- a/apps/remix-ide/src/app/panels/tab-proxy.js +++ b/apps/remix-ide/src/app/panels/tab-proxy.js @@ -211,7 +211,7 @@ export class TabProxy extends Plugin { } addTab (name, title, switchTo, close, icon) { - if (this._handlers[name]) return + if (this._handlers[name]) return this.renderComponent() var slash = name.split('/') const tabPath = slash.reverse() diff --git a/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx b/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx index 3eb1f5d725..f6b20ddef1 100644 --- a/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx +++ b/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx @@ -22,6 +22,8 @@ export const TabsUI = (props: TabsUIProps) => { const [selectedIndex, setSelectedIndex] = useState(-1) const currentIndexRef = useRef(-1) const tabsRef = useRef({}) + const tabs = useRef(props.tabs) + tabs.current = props.tabs // we do this to pass the tabs list to the onReady callbacks useEffect(() => { if (props.tabs[selectedIndex]) { @@ -31,6 +33,7 @@ export const TabsUI = (props: TabsUIProps) => { const renderTab = (tab, index) => { const classNameImg = 'my-1 mr-1 text-dark ' + tab.iconClass + console.log('renderTab', index, currentIndexRef.current) const classNameTab = 'nav-item nav-link tab' + (index === currentIndexRef.current ? ' active' : '') return (
{ tabsRef.current[index] = el }} className={classNameTab} title={tab.tooltip}> @@ -45,10 +48,10 @@ export const TabsUI = (props: TabsUIProps) => { const active = () => { if (currentIndexRef.current < 0) return '' - return props.tabs[currentIndexRef.current].name + return tabs.current[currentIndexRef.current].name } const activateTab = (name: string) => { - const index = props.tabs.findIndex((tab) => tab.name === name) + const index = tabs.current.findIndex((tab) => tab.name === name) currentIndexRef.current = index setSelectedIndex(index) } @@ -66,7 +69,7 @@ export const TabsUI = (props: TabsUIProps) => { props.onZoomIn()}>
- { props.onSelect(index); setSelectedIndex(index); currentIndexRef.current = index }} > + { props.onSelect(index); currentIndexRef.current = index; setSelectedIndex(index) }} > {props.tabs.map((tab, i) => {renderTab(tab, i)})} {props.tabs.map((tab) => )} diff --git a/package.json b/package.json index 833e460dfd..e23f858a56 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "nightwatch_local_staticAnalysis": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/staticAnalysis.spec.js --env=chrome", "nightwatch_local_signingMessage": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/signingMessage.test.js --env=chrome", "nightwatch_local_specialFunctions": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/specialFunctions.test.js --env=chrome", - "nightwatch_local_solidityUnitTests": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.js --env=chrome", + "nightwatch_local_solidityUnitTests": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.js --env=firefox", "nightwatch_local_remixd": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/remixd.test.js --env=chrome", "nightwatch_local_terminal": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/terminal.test.js --env=chrome", "nightwatch_local_gist": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/gist.spec.js --env=chrome",