Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
cade37cb
Commit
cade37cb
authored
Oct 26, 2021
by
bunsenstraat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rm plugin manager from ci
parent
ecf0dc03
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
71 additions
and
164 deletions
+71
-164
config.yml
.circleci/config.yml
+0
-34
app.tsx
apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx
+16
-10
logger.tsx
apps/remix-ide-e2e/src/local-plugin/src/app/logger.tsx
+2
-12
index.html
apps/remix-ide-e2e/src/local-plugin/src/index.html
+1
-2
pluginManager.test.ts
apps/remix-ide-e2e/src/tests/pluginManager.test.ts
+1
-49
plugin_api.ts
apps/remix-ide-e2e/src/tests/plugin_api.ts
+46
-31
browser_tests_plugin_manager.sh
apps/remix-ide/ci/browser_tests_plugin_manager.sh
+0
-21
dgitProvider.js
apps/remix-ide/src/app/files/dgitProvider.js
+2
-2
file-panel.js
apps/remix-ide/src/app/panels/file-panel.js
+2
-2
package-lock.json
package-lock.json
+0
-0
package.json
package.json
+1
-1
No files found.
.circleci/config.yml
View file @
cade37cb
...
...
@@ -221,40 +221,6 @@ jobs:
-
store_artifacts
:
path
:
./reports/screenshots
remix-ide-plugin-manager
:
docker
:
# specify the version you desire here
-
image
:
circleci/node:14.17.6-browsers
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class
:
xlarge
# - image
:
circleci/mongo:3.4.4
environment
:
-
COMMIT_AUTHOR_EMAIL
:
"
yann@ethereum.org"
-
COMMIT_AUTHOR
:
"
Circle
CI"
-
FILES_TO_PACKAGE
:
"
dist/apps/remix-ide/assets
dist/apps/remix-ide/index.html
dist/apps/remix-ide/main.js
dist/apps/remix-ide/polyfills.js
dist/apps/remix-ide/runtime.js
dist/apps/remix-ide/vendor.js
dist/apps/remix-ide/favicon.ico"
working_directory
:
~/remix-project
steps
:
-
checkout
-
run
:
npm install
-
run
:
npx nx build remix-ide --with-deps
-
run
:
npx nx build remix-ide-e2e-src-local-plugin
-
run
:
name
:
Download Selenium
command
:
./node_modules/.bin/selenium-standalone install --drivers.chrome.version=2.39 --drivers.chrome.baseURL=https://chromedriver.storage.googleapis.com
-
run
:
name
:
Start Selenium
command
:
./node_modules/.bin/selenium-standalone start --drivers.chrome.version=2.39 --drivers.chrome.baseURL=https://chromedriver.storage.googleapis.com
background
:
true
-
run
:
./apps/remix-ide/ci/browser_tests_plugin_manager.sh
-
store_test_results
:
path
:
./reports/tests
-
store_artifacts
:
path
:
./reports/screenshots
remix-ide-plugin-api
:
docker
:
# specify the version you desire here
...
...
apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx
View file @
cade37cb
...
...
@@ -23,7 +23,6 @@ const client = new RemixPlugin()
function
App
()
{
const
[
payload
,
setPayload
]
=
useState
<
string
>
(
''
)
const
[
append
,
setAppend
]
=
useState
<
boolean
>
(
false
)
const
[
log
,
setLog
]
=
useState
<
any
>
()
const
[
started
,
setStarted
]
=
useState
<
boolean
>
(
false
)
const
[
events
,
setEvents
]
=
useState
<
any
>
()
...
...
@@ -39,7 +38,7 @@ function App () {
client
.
testCommand
=
async
(
data
:
any
)
=>
{
console
.
log
(
data
)
set
Log
(
data
)
method
Log
(
data
)
}
let
addProfiles
=
[]
...
...
@@ -54,7 +53,7 @@ function App () {
profile
.
events
.
map
((
event
:
string
)
=>
{
client
.
on
(
profile
.
name
as
any
,
event
,
(...
args
:
any
)
=>
{
console
.
log
(
'event :'
,
event
,
args
)
setEvents
({
eventLog
({
event
:
event
,
args
:
args
})
...
...
@@ -65,8 +64,14 @@ function App () {
})
},
[])
const
setAppendChange
=
({
target
}:
any
)
=>
{
setAppend
(
target
.
checked
)
const
methodLog
=
(
log
:
any
)
=>
{
const
addValue
=
typeof
log
===
'string'
?
log
:
JSON
.
stringify
(
log
)
setLog
((
value
)
=>
`
${
value
}
${
addValue
}
`
)
}
const
eventLog
=
(
log
:
any
)
=>
{
const
addValue
=
typeof
log
===
'string'
?
log
:
JSON
.
stringify
(
log
)
setEvents
((
value
)
=>
`
${
value
}
${
addValue
}
`
)
}
const
clientMethod
=
async
(
profile
:
Profile
,
method
:
string
)
=>
{
...
...
@@ -78,13 +83,15 @@ function App () {
}
catch
(
e
)
{
}
const
args
=
ob
||
[
payload
]
setStarted
(
true
)
setLog
(
''
)
setEvents
(
''
)
console
.
log
(
'calling :'
,
profile
.
name
,
method
,
...
args
)
await
client
.
call
(
'manager'
,
'activatePlugin'
,
profile
.
name
)
const
result
=
await
client
.
call
(
profile
.
name
as
any
,
method
,
...
args
)
console
.
log
(
'result :'
,
result
)
set
Log
(
result
)
method
Log
(
result
)
}
catch
(
e
)
{
set
Log
(
e
.
message
)
method
Log
(
e
.
message
)
}
setStarted
(
false
)
}
...
...
@@ -94,10 +101,9 @@ function App () {
<
h5
>
PLUGIN API TESTER
</
h5
>
<
label
id=
'callStatus'
>
{
started
?
<>
start
</>
:
<>
stop
</>
}
</
label
><
br
></
br
>
<
label
>
method results
</
label
>
<
Logger
id=
'methods'
log=
{
log
}
append=
{
append
}
></
Logger
>
<
Logger
id=
'methods'
log=
{
log
}
></
Logger
>
<
label
>
events
</
label
>
<
Logger
id=
'events'
log=
{
events
}
append=
{
append
}
></
Logger
>
<
input
className=
''
id=
'appendToLog'
type=
'checkbox'
onChange=
{
setAppendChange
}
/><
label
className=
'pl-1'
>
Append to logs
</
label
>
<
Logger
id=
'events'
log=
{
events
}
></
Logger
>
<
input
className=
'form-control w-100'
type=
"text"
...
...
apps/remix-ide-e2e/src/local-plugin/src/app/logger.tsx
View file @
cade37cb
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
from
'react'
interface
loggerProps
{
append
:
boolean
,
log
:
any
,
id
:
string
}
export
const
Logger
:
React
.
FC
<
loggerProps
>
=
(
props
)
=>
{
const
[
value
,
setValue
]
=
useState
<
string
>
(
''
)
useEffect
(()
=>
{
setValue
(
value
=>
{
const
addValue
=
typeof
props
.
log
===
'string'
?
props
.
log
:
JSON
.
stringify
(
props
.
log
)
return
props
.
append
?
`
${
value
}
${
addValue
}
`
:
addValue
})
},
[
props
])
return
(<
div
id=
{
props
.
id
}
className=
"jumbotron overflow-auto text-break mb-1 p-2"
>
{
value
}
</
div
>)
return
(<
div
id=
{
props
.
id
}
className=
"jumbotron overflow-auto text-break mb-1 p-2"
>
{
props
.
log
}
</
div
>)
}
apps/remix-ide-e2e/src/local-plugin/src/index.html
View file @
cade37cb
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<base
href=
"/"
/>
<meta
charset=
"utf-8"
/>
<title>
Remix Plugin API Testser
</title>
<base
href=
"/"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
/>
<link
rel=
"icon"
type=
"image/x-icon"
href=
"favicon.ico"
/>
</head>
...
...
apps/remix-ide-e2e/src/tests/pluginManager.ts
→
apps/remix-ide-e2e/src/tests/pluginManager.t
est.t
s
View file @
cade37cb
...
...
@@ -12,13 +12,6 @@ const testData = {
pluginUrl
:
'https://zokrates.github.io/zokrates-remix-plugin/'
}
const
localPluginData
=
{
pluginName
:
'localPlugin'
,
pluginDisplayName
:
'Local Plugin'
,
pluginCanActivate
:
'LearnEth'
,
pluginUrl
:
'http://localhost:2020'
}
module
.
exports
=
{
before
:
function
(
browser
:
NightwatchBrowser
,
done
:
VoidFunction
)
{
init
(
browser
,
done
,
'http://127.0.0.1:8080'
,
false
)
...
...
@@ -76,44 +69,6 @@ module.exports = {
.
waitForElementVisible
(
'*[data-id="pluginManagerComponentActivateButtonvyper"]'
,
60000
)
},
/*
'Should grant plugin permission (ZOKRATES)': function (browser) {
browser.waitForElementVisible('*[data-id="pluginManagerComponentPluginManager"]')
.click('*[data-id="pluginManagerPermissionsButton"]')
.waitForElementVisible('*[data-id="pluginManagerSettingsPermissionForm"]')
.assert.containsText('*[data-id="pluginManagerSettingsPermissionForm"]', 'No Permission requested yet')
.modalFooterOKClick()
.click('*[data-id="verticalIconsFileExplorerIcons"]')
.openFile('3_Ballot.sol')
.click('*[plugin="ZoKrates"]')
.pause(5000)
.frame(0)
.useXpath().click("//span[text()='Compile']")
.pause(2000)
.frameParent()
.useCss().waitForElementVisible('*[data-id="modalDialogContainer"]')
.assert.containsText('*[data-id="permissionHandlerMessage"]', 'ZOKRATES" WOULD LIKE TO ACCESS "FILE MANAGER" :')
.pause(2000)
.click('*[data-id="permissionHandlerRememberChoice"]')
.pause(2000)
.modalFooterOKClick()
},
'Should revert plugin permission (ZOKRATES)': function (browser) {
browser.waitForElementVisible('*[data-id="verticalIconsSettingsIcons"]')
.click('*[data-id="verticalIconsSettingsIcons"]')
.waitForElementVisible('*[data-id="pluginManagerPermissionsButton"]')
.click('*[data-id="pluginManagerPermissionsButton"]')
.waitForElementVisible('*[data-id="modalDialogContainer"]')
.click('*[data-id="pluginManagerSettingsPermissionForm"]')
.pause(2000)
.click('*[data-id="pluginManagerSettingsClearAllPermission"]')
.pause(2000)
.assert.containsText('*[data-id="pluginManagerSettingsPermissionForm"]', 'No Permission requested yet')
.modalFooterOKClick()
},
*/
'Should connect a local plugin'
:
function
(
browser
:
NightwatchBrowser
)
{
browser
.
waitForElementVisible
(
'*[data-id="pluginManagerComponentPluginManager"]'
)
.
execute
(
function
()
{
...
...
@@ -130,8 +85,6 @@ module.exports = {
.
click
(
'*[data-id="localPluginRadioButtonsidePanel"]'
)
.
click
(
'*[data-id="pluginManagerLocalPluginModalDialogModalDialogModalFooter-react"]'
)
.
click
(
'*[data-id="pluginManagerLocalPluginModalDialog-modal-footer-ok-react'
)
// .modalFooterOKClick()
// .waitForElementVisible('*[data-id="pluginManagerComponentDeactivateButtonremixIde"]', 60000)
},
'Should display error message for creating already existing plugin'
:
function
(
browser
:
NightwatchBrowser
)
{
...
...
@@ -163,9 +116,8 @@ module.exports = {
.
waitForElementVisible
(
'*[data-id="remixIdeSidePanel"]'
)
.
pause
(
3000
)
.
perform
((
done
)
=>
{
// const filtered = plugins.filter(plugin => plugin !== 'testremixIde') // remove this when localplugin bug is resolved
plugins
.
forEach
(
plugin
=>
{
if
(
(
plugin
!==
testData
.
pluginName
)
&&
plugin
!==
localPlugin
Data
.
pluginName
)
{
if
(
plugin
!==
test
Data
.
pluginName
)
{
browser
.
waitForElementVisible
(
`[plugin="
${
plugin
}
"`
)
}
})
...
...
apps/remix-ide-e2e/src/tests/plugin_api.ts
View file @
cade37cb
...
...
@@ -89,14 +89,6 @@ const checkForAcceptAndRemember = async function (browser: NightwatchBrowser) {
})
}
const
setAppend
=
async
(
browser
:
NightwatchBrowser
)
=>
{
return
new
Promise
((
resolve
)
=>
{
browser
.
waitForElementVisible
(
'//*[@id="appendToLog"]'
).
click
(
'//*[@id="appendToLog"]'
,
()
=>
{
resolve
(
true
)
})
})
}
const
clickAndCheckLog
=
async
(
browser
:
NightwatchBrowser
,
buttonText
:
string
,
methodResult
:
any
,
eventResult
:
any
,
payload
:
any
)
=>
{
if
(
payload
)
{
await
setPayload
(
browser
,
payload
)
...
...
@@ -112,8 +104,12 @@ const clickAndCheckLog = async (browser: NightwatchBrowser, buttonText: string,
await
debugValues
(
browser
,
'events'
,
eventResult
)
}
const
assertPluginIsActive
=
function
(
browser
:
NightwatchBrowser
,
id
:
string
)
{
const
assertPluginIsActive
=
function
(
browser
:
NightwatchBrowser
,
id
:
string
,
shouldBeVisible
:
boolean
)
{
if
(
shouldBeVisible
)
{
browser
.
waitForElementVisible
(
`//*[@data-id="verticalIconsKind
${
id
}
"]`
)
}
else
{
browser
.
waitForElementNotPresent
(
`//*[@data-id="verticalIconsKind
${
id
}
"]`
)
}
}
module
.
exports
=
{
...
...
@@ -152,6 +148,12 @@ module.exports = {
})
await
browser
.
useXpath
().
frameParent
(
async
()
=>
{
browser
.
useCss
().
clickLaunchIcon
(
'filePanel'
)
.
waitForElementVisible
(
'[data-id="treeViewLitreeViewItemcontracts"]'
).
element
(
'css selector'
,
'[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]'
,
(
visible
:
any
)
=>
{
if
(
visible
.
status
&&
visible
.
status
===
-
1
)
{
browser
.
click
(
'[data-id="treeViewLitreeViewItemcontracts"]'
)
}
})
.
waitForElementVisible
(
'[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]'
)
.
rightClick
(
'[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]'
).
useXpath
().
waitForElementVisible
(
'//*[@id="menuitemtestcommand"]'
).
click
(
'//*[@id="menuitemtestcommand"]'
,
async
()
=>
{
// @ts-ignore
browser
.
click
(
'//*[@data-id="verticalIconsKindlocalPlugin"]'
).
frame
(
0
,
async
()
=>
{
...
...
@@ -174,9 +176,7 @@ module.exports = {
await
clickAndCheckLog
(
browser
,
'fileManager:getCurrentFile'
,
'Error from IDE : Error: No such file or directory No file selected'
,
null
,
null
)
},
'Should open readme.txt'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'fileManager:open'
,
null
,
{
event
:
'currentFileChanged'
,
args
:
[
'README.txt'
]
},
'README.txt'
)
await
setAppend
(
browser
)
},
'Should have current file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'fileManager:getCurrentFile'
,
'README.txt'
,
null
,
null
)
...
...
@@ -189,30 +189,26 @@ module.exports = {
await
clickAndCheckLog
(
browser
,
'fileManager:getFile'
,
'REMIX EXAMPLE PROJECT'
,
null
,
'README.txt'
)
},
'Should close all files'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'fileManager:closeAllFiles'
,
null
,
{
event
:
'noFileSelected'
,
args
:
[]
},
null
)
await
setAppend
(
browser
)
},
'Should switch to file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'fileManager:switchFile'
,
null
,
{
event
:
'currentFileChanged'
,
args
:
[
'contracts/1_Storage.sol'
]
},
'contracts/1_Storage.sol'
)
await
clickAndCheckLog
(
browser
,
'fileManager:getCurrentFile'
,
'contracts/1_Storage.sol'
,
null
,
null
)
await
clickAndCheckLog
(
browser
,
'fileManager:switchFile'
,
null
,
{
event
:
'currentFileChanged'
,
args
:
[
'README.txt'
]
},
'README.txt'
)
await
clickAndCheckLog
(
browser
,
'fileManager:getCurrentFile'
,
'README.txt'
,
null
,
null
)
await
setAppend
(
browser
)
},
'Should write to file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'fileManager:writeFile'
,
null
,
{
event
:
'fileSaved'
,
args
:
[
'README.txt'
]
},
[
'README.txt'
,
'test'
])
await
clickAndCheckLog
(
browser
,
'fileManager:readFile'
,
'test'
,
null
,
'README.txt'
)
await
setAppend
(
browser
)
},
'Should set file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'fileManager:setFile'
,
null
,
{
event
:
'fileAdded'
,
args
:
[
'new.sol'
]
},
[
'new.sol'
,
'test'
])
await
clickAndCheckLog
(
browser
,
'fileManager:readFile'
,
'test'
,
null
,
'new.sol'
)
},
'Should write to new file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'fileManager:writeFile'
,
null
,
{
event
:
'fileAdded'
,
args
:
[
'testing.txt'
]
},
[
'testing.txt'
,
'test'
])
await
clickAndCheckLog
(
browser
,
'fileManager:readFile'
,
'test'
,
null
,
'testing.txt'
)
await
setAppend
(
browser
)
},
'Should rename file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'fileManager:rename'
,
null
,
null
,
[
'testing.txt'
,
'testrename.txt'
])
...
...
@@ -220,7 +216,7 @@ module.exports = {
},
'Should create empty workspace'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'filePanel:createWorkspace'
,
null
,
null
,
[
'emptyworkspace'
,
fals
e
])
await
clickAndCheckLog
(
browser
,
'filePanel:createWorkspace'
,
null
,
null
,
[
'emptyworkspace'
,
tru
e
])
await
clickAndCheckLog
(
browser
,
'filePanel:getCurrentWorkspace'
,
{
name
:
'emptyworkspace'
,
isLocalhost
:
false
,
absolutePath
:
'.workspaces/emptyworkspace'
},
null
,
null
)
await
clickAndCheckLog
(
browser
,
'fileManager:readdir'
,
{},
null
,
'/'
)
},
...
...
@@ -233,17 +229,18 @@ module.exports = {
await
clickAndCheckLog
(
browser
,
'filePanel:getWorkspaces'
,
[
'default_workspace'
,
'emptyworkspace'
,
'testspace'
],
null
,
null
)
},
'Should have set workspace event'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'filePanel:createWorkspace'
,
null
,
{
event
:
'setWorkspace'
,
args
:
[{
name
:
'newspace'
,
isLocalhost
:
false
}]
},
'newspace'
)
await
setAppend
(
browser
)
},
'Should have event when switching workspace'
:
async
function
(
browser
:
NightwatchBrowser
)
{
// @ts-ignore
browser
.
frameParent
().
useCss
().
clickLaunchIcon
(
'filePanel'
).
click
(
'*[data-id="workspacesSelect"] option[value="default_workspace"]'
).
useXpath
().
click
(
'//*[@data-id="verticalIconsKindlocalPlugin"]'
).
frame
(
0
,
async
()
=>
{
await
clickAndCheckLog
(
browser
,
null
,
null
,
{
event
:
'setWorkspace'
,
args
:
[{
name
:
'default_workspace'
,
isLocalhost
:
false
}]
},
null
)
})
},
'Should rename workspace'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'filePanel:renameWorkspace'
,
null
,
null
,
[
'default_workspace'
,
'renamed'
])
await
clickAndCheckLog
(
browser
,
'filePanel:getWorkspaces'
,
[
'emptyworkspace'
,
'testspace'
,
'newspace'
,
'renamed'
],
null
,
null
)
await
setAppend
(
browser
)
},
// DGIT
'Should have changes on new workspace'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'filePanel:createWorkspace'
,
null
,
null
,
'dgit'
)
...
...
@@ -260,30 +257,48 @@ module.exports = {
await
clickAndCheckLog
(
browser
,
'dGitProvider:commit'
,
null
,
null
,
{
author
:
{
name
:
'Remix'
,
email
:
'Remix'
},
message
:
'commit-message'
})
await
clickAndCheckLog
(
browser
,
'dGitProvider:log'
,
'commit-message'
,
null
,
null
)
},
// context menu
'Should have git log'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'dGitProvider:log'
,
'commit-message'
,
null
,
null
)
},
'Should have branches'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'dGitProvider:branches'
,
[{
name
:
'main'
}],
null
,
null
)
},
// resolver
'Should resolve url'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'contentImport:resolve'
,
'# Remix Project'
,
null
,
'https://github.com/ethereum/remix-project/blob/master/README.md'
)
},
'Should resolve and save url'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'contentImport:resolveAndSave'
,
'# Remix Project'
,
{
event
:
'fileAdded'
,
args
:
[
'.deps/github/ethereum/remix-project/README.md'
]
},
'https://github.com/ethereum/remix-project/blob/master/README.md'
)
},
// UNIT TESTING
'Should activate solidityUnitTesting'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'manager:activatePlugin'
,
null
,
null
,
'solidityUnitTesting'
)
browser
.
frameParent
()
assertPluginIsActive
(
browser
,
'solidityUnitTesting'
)
assertPluginIsActive
(
browser
,
'solidityUnitTesting'
,
true
)
// @ts-ignore
browser
.
frame
(
0
)
await
clickAndCheckLog
(
browser
,
'manager:isActive'
,
true
,
null
,
'solidityUnitTesting'
)
},
'Should test from path with solidityUnitTesting'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'solidityUnitTesting:testFromPath'
,
'"totalPassing":2,"totalFailing":0'
,
null
,
'tests/4_Ballot_test.sol'
)
},
'Should deactivate solidityUnitTesting'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
clickAndCheckLog
(
browser
,
'manager:deactivatePlugin'
,
null
,
null
,
'solidityUnitTesting'
)
browser
.
frameParent
()
assertPluginIsActive
(
browser
,
'solidityUnitTesting'
,
false
)
// @ts-ignore
browser
.
frame
(
0
)
await
clickAndCheckLog
(
browser
,
'manager:isActive'
,
false
,
null
,
'solidityUnitTesting'
)
},
// COMPILER
'Should compile a file'
:
async
function
(
browser
:
NightwatchBrowser
)
{
await
setAppend
(
browser
)
await
clickAndCheckLog
(
browser
,
'solidity:compile'
,
null
,
null
,
'contracts/1_Storage.sol'
)
browser
.
pause
(
5000
,
async
()
=>
{
await
clickAndCheckLog
(
browser
,
'solidity:compile'
,
null
,
'compilationFinished'
,
null
)
await
setAppend
(
browser
)
})
},
...
...
apps/remix-ide/ci/browser_tests_plugin_manager.sh
deleted
100755 → 0
View file @
ecf0dc03
#!/usr/bin/env bash
set
-e
BUILD_ID
=
${
CIRCLE_BUILD_NUM
:-${
TRAVIS_JOB_NUMBER
}}
echo
"
$BUILD_ID
"
TEST_EXITCODE
=
0
npm run serve &
npx nx serve remix-ide-e2e-src-local-plugin &
sleep
5
npm run build:e2e
npm run nightwatch_local_pluginManager
||
TEST_EXITCODE
=
1
echo
"
$TEST_EXITCODE
"
if
[
"
$TEST_EXITCODE
"
-eq
1
]
then
exit
1
fi
apps/remix-ide/src/app/files/dgitProvider.js
View file @
cade37cb
...
...
@@ -227,7 +227,7 @@ class DGitProvider extends Plugin {
const
permission
=
await
this
.
askUserPermission
(
'clone'
,
'Import multiple files into your workspaces.'
)
if
(
!
permission
)
return
false
if
(
this
.
calculateLocalStorage
()
>
10000
)
throw
new
Error
(
'The local storage of the browser is full.'
)
await
this
.
call
(
'filePanel'
,
'createWorkspace'
,
`workspace_
${
Date
.
now
()}
`
,
fals
e
)
await
this
.
call
(
'filePanel'
,
'createWorkspace'
,
`workspace_
${
Date
.
now
()}
`
,
tru
e
)
const
cmd
=
{
url
:
input
.
url
,
...
...
@@ -459,7 +459,7 @@ class DGitProvider extends Plugin {
if
(
!
permission
)
return
false
if
(
this
.
calculateLocalStorage
()
>
10000
)
throw
new
Error
(
'The local storage of the browser is full.'
)
const
cid
=
cmd
.
cid
await
this
.
call
(
'filePanel'
,
'createWorkspace'
,
`workspace_
${
Date
.
now
()}
`
,
fals
e
)
await
this
.
call
(
'filePanel'
,
'createWorkspace'
,
`workspace_
${
Date
.
now
()}
`
,
tru
e
)
const
workspace
=
await
this
.
call
(
'filePanel'
,
'getCurrentWorkspace'
)
let
result
if
(
cmd
.
local
)
{
...
...
apps/remix-ide/src/app/panels/file-panel.js
View file @
cade37cb
...
...
@@ -246,7 +246,7 @@ module.exports = class Filepanel extends ViewPlugin {
return
browserProvider
.
exists
(
workspacePath
)
}
async
createWorkspace
(
workspaceName
,
setDefaults
=
tru
e
)
{
async
createWorkspace
(
workspaceName
,
isEmpty
=
fals
e
)
{
if
(
!
workspaceName
)
throw
new
Error
(
'name cannot be empty'
)
if
(
checkSpecialChars
(
workspaceName
)
||
checkSlash
(
workspaceName
))
throw
new
Error
(
'special characters are not allowed'
)
if
(
await
this
.
workspaceExists
(
workspaceName
))
throw
new
Error
(
'workspace already exists'
)
...
...
@@ -256,7 +256,7 @@ module.exports = class Filepanel extends ViewPlugin {
await
this
.
processCreateWorkspace
(
workspaceName
)
workspaceProvider
.
setWorkspace
(
workspaceName
)
await
this
.
request
.
setWorkspace
(
workspaceName
)
// tells the react component to switch to that workspace
if
(
setDefaults
)
{
if
(
!
isEmpty
)
{
for
(
const
file
in
examples
)
{
try
{
await
workspaceProvider
.
set
(
examples
[
file
].
name
,
examples
[
file
].
content
)
...
...
package-lock.json
View file @
cade37cb
This diff is collapsed.
Click to expand it.
package.json
View file @
cade37cb
...
...
@@ -78,7 +78,7 @@
"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"
,
"nightwatch_local_workspace"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/workspace.test.js --env=chrome"
,
"nightwatch_local_defaultLayout"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/defaultLayout.test.js --env=chrome"
,
"nightwatch_local_pluginManager"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/pluginManager.js --env=chrome"
,
"nightwatch_local_pluginManager"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/pluginManager.
test.
js --env=chrome"
,
"nightwatch_local_publishContract"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/publishContract.test.js --env=chrome"
,
"nightwatch_local_generalSettings"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/generalSettings.test.js --env=chrome"
,
"nightwatch_local_fileExplorer"
:
"npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/fileExplorer.test.js --env=chrome"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment