pull/4302/head
lianahus 12 months ago committed by yann300
parent 081565c081
commit 1e44586e2e
  1. 20
      apps/remix-ide-e2e/src/tests/walkthrough.test.ts
  2. 1
      apps/remix-ide/src/app/tabs/locales/en/udapp.json
  3. 121
      apps/remix-ide/src/app/tabs/locales/fr/home.json
  4. 1
      apps/remix-ide/src/walkthroughService.js
  5. 20
      libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx
  6. 4
      libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx
  7. 1
      package.json

@ -0,0 +1,20 @@
'use strict'
import { NightwatchBrowser } from 'nightwatch'
import init from '../helpers/init'
module.exports = {
before: function (browser: NightwatchBrowser, done: VoidFunction) {
init(browser, done)
},
'Should run walkthrough for recorder': function (browser: NightwatchBrowser) {
browser
.waitForElementPresent('*[data-id="remixIdeSidePanel"]')
.clickLaunchIcon('udapp')
.waitForElementPresent('*[data-id="recorderStartWalkthrough"]')
.click('*[data-id="recorderStartWalkthrough"]')
.waitForElementPresent('*[id="remixRecorderWalkthrowTitle"]')
.waitForElementPresent('*[id="remixRecorderExpanded"]')
}
}

@ -76,6 +76,7 @@
"udapp.transactionSaveTooltip1": "No transactions to save", "udapp.transactionSaveTooltip1": "No transactions to save",
"udapp.transactionSaveTooltip2": "Save {count} transaction as scenario file", "udapp.transactionSaveTooltip2": "Save {count} transaction as scenario file",
"udapp.transactionSaveTooltip3": "Save {count} transactions as scenario file", "udapp.transactionSaveTooltip3": "Save {count} transactions as scenario file",
"udapp.transactionsWalkthroughTooltip": "Start walkthrough tour for recorder.",
"udapp.infoRecorderTooltip": "Save transactions (deployed contracts and function executions) and replay them in another environment e.g Transactions created in Remix VM can be replayed in the Injected Provider.", "udapp.infoRecorderTooltip": "Save transactions (deployed contracts and function executions) and replay them in another environment e.g Transactions created in Remix VM can be replayed in the Injected Provider.",
"udapp.livemodeRecorderTooltip": "If contracts are updated after recording transactions, checking this box will run recorded transactions with the latest copy of the compiled contracts", "udapp.livemodeRecorderTooltip": "If contracts are updated after recording transactions, checking this box will run recorded transactions with the latest copy of the compiled contracts",
"udapp.livemodeRecorderLabel": "Run transactions using the latest compilation result", "udapp.livemodeRecorderLabel": "Run transactions using the latest compilation result",

@ -1,66 +1,61 @@
{ {
"home.scamAlert": "Alerte arnaque", "home.scamAlert": "Scam Alert",
"home.scamAlertText": "Le seul URL utilisé par Remix est remix.ethereum.org", "home.scamAlertText": "The only URL Remix uses is remix.ethereum.org",
"home.scamAlertText2": "Méfiez-vous des vidéos en ligne qui font la promotion de \"front-runner bots\"", "home.scamAlertText2": "Beware of online videos promoting \"liquidity front runner bots\"",
"home.scamAlertText3": "Conseils de sécurité supplémentaires", "home.scamAlertText3": "Additional safety tips",
"home.learnMore": "En savoir plus", "home.learnMore": "Learn more",
"home.here": "ici", "home.here": "here",
"home.featured": "Recommandé", "home.featured": "Featured",
"home.jumpIntoWeb3": "JUMP INTO WEB3", "home.jumpIntoWeb3": "WE NEED YOUR HELP",
"home.jumpIntoWeb3More": "More", "home.jumpIntoWeb3More": "Go to survey",
"home.jumpIntoWeb3Text": "Remix IDE is part of the Remix Project, a rich toolset that can be used for the entire journey of contract development by users of any knowledge level. Learn more on the Remix Project website.", "home.jumpIntoWeb3Text": "Remixers... Have a spare moment? Please help us improve your Remix experience with this one-minute survey.",
"home.remixYouTube": "REGARDER POUR APPRENDRE", "home.remixYouTube": "WATCH TO LEARN",
"home.remixYouTubeText1": "Conseils vidéo de l'équipe de Remix", "home.remixYouTubeText1": "Video Tips from the Remix Team",
"home.remixYouTubeMore": "Regarder", "home.remixYouTubeMore": "Watch",
"home.remixYouTubeText2": "Remix a une bibliothèque grandissante de vidéos contenant beaucoup de conseils pour utiliser l'outil. Vérifiez-les et abonnez-vous pour obtenir nos dernieres vidéos.", "home.remixYouTubeText2": "Remix has a growing library of videos containing lots of tips for using the tool. Check them out and subscribe to get our latest uploads.",
"home.betaTesting": "Tests BETA", "home.betaTesting": "BETA TESTING",
"home.betaTestingText1": "Notre communauté nous soutient.", "home.betaTestingText1": "Our community supports us.",
"home.betaTestingText2": "Aidez-nous à tester les versions bêta dès maintenant et à gérer les nouvelles fonctionnalités !", "home.betaTestingText2": "Help us beta test releases now and get a handle on new features!",
"home.betaTestingMore": "S'inscrire", "home.betaTestingMore": "Sign up",
"home.featuredPlugins": "Plugins recommandés", "home.featuredPlugins": "Featured Plugins",
"home.solidityPluginDesc": "Compiler, tester et analyser les smart contrats.", "home.solidityPluginDesc": "Compile, test, and analyze smart contracts.",
"home.cookbookDesc": "Trouvez des smarts contrats, des bibliothèques solidity et découvrez des protocoles.", "home.starkNetPluginDesc": "Compile and deploy contracts with Cairo, a native language for StarkNet.",
"home.codeAnalyizerPluginDesc": "Analysez votre code en utilisant Remix, Solhint et Slither.", "home.solhintPluginDesc": "Solhint is an open source project for linting Solidity code.",
"home.starkNetPluginDesc": "Compiler et déployer des contrats avec Cairo, le language natif pour StarkNet.", "home.sourcifyPluginDesc": "Solidity contract and metadata verification service.",
"home.solhintPluginDesc": "Solhint est un projet open source de linter pour code solidity.", "home.unitTestPluginDesc": "Write and run unit tests for your contracts in Solidity.",
"home.sourcifyPluginDesc": "Service de vérification de contract solidity et des métadonnées.", "home.dgitPluginDesc": "Add source control to your projects.",
"home.unitTestPluginDesc": "Écrire et exécuter des tests unitaires pour vos contrats en Solidity.", "home.oneClickDappDesc": "Quickly generate smart contract interfaces",
"home.dgitPluginDesc": "Ajoutez le contrôle source à vos projets.", "home.getStarted": "Get Started",
"home.oneClickDappDesc": "Générer rapidement des interfaces smart contract", "home.projectTemplates": "Project Templates",
"home.getStarted": "Démarrer", "home.blankTemplateDesc": "Create an empty workspace.",
"home.projectTemplates": "Template de projet", "home.remixDefaultTemplateDesc": "Create a workspace with sample files.",
"home.blankTemplateDesc": "Créer un espace de travail vide.", "home.ozerc20TemplateDesc": "Create an ERC20 token by importing OpenZeppelin library.",
"home.remixDefaultTemplateDesc": "Créer un espace de travail avec des exemples de fichiers.", "home.ozerc721TemplateDesc": "Create an NFT token by importing OpenZeppelin library.",
"home.ozerc20TemplateDesc": "Créer un token ERC20 en important la bibliothèque OpenZeppelin.", "home.ozerc1155TemplateDesc": "Create an ERC1155 token by importing OpenZeppelin library.",
"home.ozerc721TemplateDesc": "Créez un token NFT en important la bibliothèque OpenZeppelin.", "home.gnosisSafeMultisigTemplateDesc": "Create Multi-Signature wallets using this template.",
"home.ozerc1155TemplateDesc": "Créez un token ERC1155 en important la bibliothèque OpenZeppelin.", "home.zeroxErc20TemplateDesc": "Create an ERC20 token by importing 0xProject contract.",
"home.gnosisSafeMultisigTemplateDesc": "Créer des allet multi-signatures en utilisant ce modèle.", "home.learn": "Learn",
"home.zeroxErc20TemplateDesc": "Créez un token ERC20 en important le contrat 0xProject.", "home.learnEth1": "Remix Basics",
"home.learn": "Apprendre", "home.learnEth1Desc": "An introduction to Remix's interface and basic operations.",
"home.learnEth1": "Bases de remix", "home.learnEth2": "Intro to Solidity",
"home.learnEth1Desc": "Une introduction à l'interface de Remix et aux opérations de base.", "home.learnEth2Desc": "Interactively learn Solidity beginner concepts.",
"home.learnEth2": "Introduction à Solidity", "home.remixAdvanced": "Deploying with Libraries",
"home.learnEth2Desc": "Apprenez de façon interactive les concepts de base de Solidity.", "home.remixAdvancedDesc": "Learn to deploy with libraries in Remix",
"home.remixAdvanced": "Déploiement avec les librairies", "home.remixYoutubePlaylist": "Remix Youtube Playlist",
"home.remixAdvancedDesc": "Apprendre à déployer avec les librairies dans Remix", "home.remixTwitterProfile": "Remix Twitter Profile",
"home.remixYoutubePlaylist": "Playlist Youtube de Remix", "home.remixLinkedinProfile": "Remix Linkedin Profile",
"home.remixTwitterProfile": "Profile Twitter de Remix", "home.remixMediumPosts": "Remix Medium Posts",
"home.remixLinkedinProfile": "Profil Linkedin de Remix", "home.remixGitterChannel": "Join us on Discord",
"home.remixMediumPosts": "Articles Medium de Remix", "home.nativeIDE": "The Native IDE for Web3 Development.",
"home.joinUsOnDiscord": "Rejoignez-nous sur Discord", "home.website": "Website",
"home.nativeIDE": "L’IDE natif pour le développement Web3.",
"home.website": "Site Web",
"home.documentation": "Documentation", "home.documentation": "Documentation",
"home.remixPlugin": "Plugin Remix", "home.remixPlugin": "Remix Plugin",
"home.remixDesktop": "Version Desktop de Remix", "home.remixDesktop": "Remix Desktop",
"home.searchDocumentation": "Rechercher dans la documentation", "home.searchDocumentation": "Search Documentation",
"home.files": "Fichiers", "home.files": "Files",
"home.newFile": "Nouveau Fichier", "home.newFile": "New File",
"home.openFile": "Ouvrir Fichier", "home.openFile": "Open File",
"home.accessFileSystem": "Accéder au système de fichiers", "home.connectToLocalhost": "Access File System",
"home.loadFrom": "Charger de", "home.loadFrom": "Load from",
"home.resources": "Ressources", "home.resources": "Resources"
"home.connectToLocalhost": "Se connecter à Localhost",
"home.seeAllTutorials": "Voir tous les tutoriels",
"home.maintainedByRemix": "Maintenu par Remix"
} }

@ -70,6 +70,7 @@ export class WalkthroughService extends Plugin {
header.classList.add('justify-content-between') header.classList.add('justify-content-between')
header.classList.add('text-nowrap') header.classList.add('text-nowrap')
header.classList.add('pr-0') header.classList.add('pr-0')
header.id="remixRecorderWalkthrowTitle"
} }
const skipbutton = document.getElementsByClassName('introjs-skipbutton')[0] const skipbutton = document.getElementsByClassName('introjs-skipbutton')[0]
if (skipbutton) { if (skipbutton) {

@ -50,7 +50,21 @@ export function RecorderUI(props: RecorderProps) {
{props.count} {props.count}
</div> </div>
</CustomTooltip> </CustomTooltip>
<i style={{fontSize: 'medium'}} className={'ml-2 fal fa-info-circle align-self-center'} aria-hidden="true" onClick={() => startWalkthrough()}></i> <CustomTooltip
placement={'right'}
tooltipClasses="text-nowrap"
tooltipId="recordedTransactionsWalkthroughtooltip"
tooltipText={<FormattedMessage id="udapp.transactionsWalkthroughTooltip" />}
>
<i
style={{fontSize: 'medium'}}
className={'ml-2 fal fa-info-circle align-self-center'}
aria-hidden="true"
onClick={() => startWalkthrough()}
data-id="recorderStartWalkthrough"
>
</i>
</CustomTooltip>
</div> </div>
<div className="p-3"> <div className="p-3">
<span data-id="udappRecorderTitleExpander" onClick={toggleClass}> <span data-id="udappRecorderTitleExpander" onClick={toggleClass}>
@ -58,7 +72,7 @@ export function RecorderUI(props: RecorderProps) {
</span> </span>
</div> </div>
</div> </div>
<div className={`pb-2 flex-column ${toggleExpander ? 'd-flex' : 'd-none'}`}> { toggleExpander && <div className={`pb-2 flex-column ${toggleExpander ? 'd-flex' : 'd-none'}`} data-id='remixRecorderExpanded'>
<div className="mb-1 mt-1 custom-control custom-checkbox mb-1" id='udappRecorderUseLatest'> <div className="mb-1 mt-1 custom-control custom-checkbox mb-1" id='udappRecorderUseLatest'>
<input ref={inputLive} type="checkbox" id="livemode-recorder" className="custom-control-input custom-select" name="input-livemode" /> <input ref={inputLive} type="checkbox" id="livemode-recorder" className="custom-control-input custom-select" name="input-livemode" />
<CustomTooltip <CustomTooltip
@ -112,7 +126,7 @@ export function RecorderUI(props: RecorderProps) {
</button> </button>
</CustomTooltip> </CustomTooltip>
</div> </div>
</div> </div>}
</div> </div>
) )
} }

@ -189,9 +189,13 @@ export const SolidityUnitTesting = (props: Record<string, any>) => {
}, []) // eslint-disable-line }, []) // eslint-disable-line
const updateDirList = (path: string) => { const updateDirList = (path: string) => {
try {
testTabLogic.dirList(path).then((options: string[]) => { testTabLogic.dirList(path).then((options: string[]) => {
setPathOptions(options) setPathOptions(options)
}) })
} catch {
console.log("No test directory has been found in the workspace.")
}
} }
const handleTestDirInput = async (e: any) => { const handleTestDirInput = async (e: any) => {

@ -103,6 +103,7 @@
"nightwatch_local_stress_editor": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/stressEditor.test.js --env=chromeDesktop", "nightwatch_local_stress_editor": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/stressEditor.test.js --env=chromeDesktop",
"nightwatch_local_search": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/search.test.js --env=chromeDesktop", "nightwatch_local_search": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/search.test.js --env=chromeDesktop",
"nightwatch_local_providers": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/providers.test.js --env=chromeDesktop", "nightwatch_local_providers": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/providers.test.js --env=chromeDesktop",
"nightwatch_local_walkthrough": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/walkthrough.test.js --env=chromeDesktop",
"onchange": "onchange apps/remix-ide/build/app.js -- npm-run-all lint", "onchange": "onchange apps/remix-ide/build/app.js -- npm-run-all lint",
"remixd": "nx build remixd && chmod +x dist/libs/remixd/src/bin/remixd.js && dist/libs/remixd/src/bin/remixd.js --remix-ide http://127.0.0.1:8080", "remixd": "nx build remixd && chmod +x dist/libs/remixd/src/bin/remixd.js && dist/libs/remixd/src/bin/remixd.js --remix-ide http://127.0.0.1:8080",
"simulator": "nx build remix-simulator && chmod +x dist/libs/remix-simulator/bin/ethsim && dist/libs/remix-simulator/bin/ethsim start --rpc", "simulator": "nx build remix-simulator && chmod +x dist/libs/remix-simulator/bin/ethsim && dist/libs/remix-simulator/bin/ethsim start --rpc",

Loading…
Cancel
Save