Skip to content

Fix Rename Workspace Test #6248

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 39 commits into from
Aug 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
050425d
position submenu without flicker or overlap. Add padding and fix height
Aug 9, 2025
a9675a8
fix workspace rename and workspace delete e2es. Refactor workspaces d…
Aug 12, 2025
a7e828e
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 14, 2025
ea606e8
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 14, 2025
02b423d
fix contract execution test
Aug 14, 2025
3392271
fix test
Aug 15, 2025
cdcaa79
mark test
Aug 15, 2025
a763f3a
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 18, 2025
c50f4b8
fix plugin api
Aug 18, 2025
8ef1b2d
fix flaky tests
Aug 18, 2025
8fed31c
fix css to hide tooltips and scam alert. update scrollInto command
Aug 19, 2025
366f478
add topbar to plugin api test
Aug 19, 2025
6abfed2
change button text divider to dash to fix test. restore port number
Aug 19, 2025
1360358
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 19, 2025
6a92f8f
fix script-runner tests. fix plugin api test
Aug 19, 2025
d693338
fix plugin api test
Aug 19, 2025
96b4c4d
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 19, 2025
bba9414
change port temp
Aug 19, 2025
d5ad927
fix getWorkspaces using topbar
Aug 19, 2025
b321d8a
revert port number
Aug 19, 2025
6131473
fix script runner flakiness
Aug 19, 2025
576170a
fix pluginapi and scriptrunner tests
Aug 19, 2025
957437e
fix script-runner flakiness
Aug 19, 2025
08ba09b
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 19, 2025
87b6615
test specific test in script-runner.
Aug 19, 2025
0b1d8bd
remove pr tag
Aug 19, 2025
29dd3a7
fix firefox flakiness for script-runner test
Aug 19, 2025
0166e40
fix comments from @Aniket-Engg
Aug 19, 2025
0de968c
Merge branch 'master' into fix-rename-workspacetest
joeizang Aug 19, 2025
e2635b4
fixes to submenu and dropdown menu @ninja-fire
Aug 19, 2025
08457d5
fix workspace test
Aug 19, 2025
62615d8
fix flakiness
Aug 20, 2025
1d9d784
fix e2e flakiness in scriptrunner test
Aug 20, 2025
e6f5083
create button fix
Aniket-Engg Aug 20, 2025
30bc9d1
Add scroll section
Aug 20, 2025
2535470
as before
Aug 20, 2025
982c1cd
readd scroll after @Aniket-Engg create workspace fix.
Aug 20, 2025
a945004
fix git button poisiton
Aug 20, 2025
f961a64
fix various workspaces dropdown issues
Aug 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/remix-ide-e2e/src/commands/currentWorkspaceIs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import EventEmitter from 'events'
class CurrentWorkspaceIs extends EventEmitter {
command (this: NightwatchBrowser, name: string): NightwatchBrowser {
const browser = this.api
const xpath = `//*[@data-id="workspacesSelect"]//*[@data-id="dropdown-content"][contains(normalize-space(), "${name}")]`;
const xpath = `//*[@data-id="workspacesSelect"]//*[@data-id="workspacesSelect-togglerText"][contains(normalize-space(), "${name}")]`;

browser.waitForElementVisible({
locateStrategy: 'xpath',
Expand Down
2 changes: 1 addition & 1 deletion apps/remix-ide-e2e/src/commands/scrollInto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class ScrollInto extends EventEmitter {
}

function _scrollInto (browser: NightwatchBrowser, target: string, cb: VoidFunction): void {
browser.execute(function (target) {
browser.executeScript(function (target) {
document.querySelector(target).scrollIntoView(({ block: 'center' }))
}, [target], function () {
cb()
Expand Down
35 changes: 30 additions & 5 deletions apps/remix-ide-e2e/src/helpers/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,46 @@ export default function (browser: NightwatchBrowser, callback: VoidFunction, url
.verifyLoad()
.enableClipBoard()
.perform((done) => {
browser.execute(function () { // hide tooltips
browser.execute(function () { // hide tooltips for Bootstrap 5
function addStyle(styleString) {
const style = document.createElement('style');
style.textContent = styleString;
document.head.append(style);
}

addStyle(`
.popover {
display:none !important;
.popover,
.tooltip,
.bs-popover-auto,
.bs-tooltip-auto,
.bs-popover-top,
.bs-popover-bottom,
.bs-popover-start,
.bs-popover-end,
.bs-tooltip-top,
.bs-tooltip-bottom,
.bs-tooltip-start,
.bs-tooltip-end {
display: none !important;
opacity: 0 !important;
visibility: hidden !important;
}
#scamDetails {
display:none !important;
display: none !important;
}
`);
`);

// Additionally, programmatically disable all Bootstrap 5 tooltips
if ((window as any).bootstrap && typeof (window as any).bootstrap.Tooltip === 'function') {
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.forEach(function (tooltipTriggerEl) {
try {
const tooltipInstance = (window as any).bootstrap.Tooltip.getInstance(tooltipTriggerEl) || new (window as any).bootstrap.Tooltip(tooltipTriggerEl);
tooltipInstance.disable && tooltipInstance.disable();
tooltipInstance.hide && tooltipInstance.hide();
} catch (e) {}
});
}
}, [], done())
})
.perform(() => {
Expand Down
49 changes: 27 additions & 22 deletions apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
import React, {useEffect, useState} from 'react'
import {RemixPlugin} from './Client'
import {Logger} from './logger'
import {filePanelProfile} from '@remixproject/plugin-api'
import {filSystemProfile} from '@remixproject/plugin-api'
import {editorProfile} from '@remixproject/plugin-api'
import {settingsProfile} from '@remixproject/plugin-api'
import {networkProfile} from '@remixproject/plugin-api'
import {udappProfile} from '@remixproject/plugin-api'
import {compilerProfile} from '@remixproject/plugin-api'
import {contentImportProfile} from '@remixproject/plugin-api'
import {windowProfile} from '@remixproject/plugin-api'
import {pluginManagerProfile} from '@remixproject/plugin-api'
import {LibraryProfile, Profile} from '@remixproject/plugin-utils'

import React, { useEffect, useState } from 'react'
import { RemixPlugin } from './Client'
import { Logger } from './logger'
import { filePanelProfile } from '@remixproject/plugin-api'
import { filSystemProfile } from '@remixproject/plugin-api'
import { editorProfile } from '@remixproject/plugin-api'
import { settingsProfile } from '@remixproject/plugin-api'
import { networkProfile } from '@remixproject/plugin-api'
import { udappProfile } from '@remixproject/plugin-api'
import { compilerProfile } from '@remixproject/plugin-api'
import { contentImportProfile } from '@remixproject/plugin-api'
import { windowProfile } from '@remixproject/plugin-api'
import { pluginManagerProfile } from '@remixproject/plugin-api'
import { LibraryProfile, Profile } from '@remixproject/plugin-utils'
import './app.css'

export const dGitProfile: LibraryProfile<any> = {
name: 'dgitApi',
methods: ['status', 'log', 'commit', 'add', 'branches'],
}
import './app.css'

export const topbarProfile: LibraryProfile<any> = {
name: 'topbar',
methods: ['getWorkspaces'],
}

const client = new RemixPlugin()

Expand All @@ -38,16 +42,17 @@ function App() {
compilerProfile,
udappProfile,
contentImportProfile,
windowProfile
windowProfile,
topbarProfile
])

const handleChange = ({target}: any) => {
const handleChange = ({ target }: any) => {
setPayload(target.value)
}

useEffect(() => {
client.onload(async () => {
const customProfiles = ['menuicons', 'tabs', 'solidityUnitTesting', 'hardhat-provider', 'notification']
const customProfiles = ['menuicons', 'tabs', 'solidityUnitTesting', 'hardhat-provider', 'notification', 'topbar']

client.testCommand = async (data: any) => {
methodLog(data)
Expand Down Expand Up @@ -123,7 +128,7 @@ function App() {
{profiles.map((profile: Profile) => {
const methods = profile.methods.map((method: string) => {
return (
<button data-id={`${profile.name}:${method}`} key={method} className="btn btn-primary btn-sm ms-1 mb-1" onClick={async () => await clientMethod(profile, method)}>
<button id={`${profile.name}-${method}-${profile.name}`} data-id={`${profile.name}-${method}`} key={method} className="btn btn-primary btn-sm ms-1 mb-1" onClick={async () => await clientMethod(profile, method)}>
{method}
</button>
)
Expand All @@ -140,9 +145,9 @@ function App() {
return (
<div key={profile.name} className="small border-bottom">
<label className="text-uppercase">{profile.name}</label>
<br></br>
<br/>
{methods}
<br></br>
<br/>
{events ? <label>EVENTS:</label> : null}
{events}
</div>
Expand Down
Loading