Skip to content

NomicFoundation/smoke-tests-vscode

Repository files navigation

Hardhat for Visual Studio Code Smoke Tests

Release prep for Hardhat for Visual Studio Code involves running through manual tests from this repo on multiple os. This is to support our integration tests and provide a final sanity check that core functionality is working on different platforms.

Hardhat for Visual Studio Code is tested against:

  • Mac OS X
  • Windows
  • Remote containers with docker as the backing

Manual Test Run

Install the Release Candidate vsix file into your local instance of vscode on one of the test platforms (i.e. windows). Open this repo within vscode and install the dependencies:

yarn

Confirm that the contracts build cleanly at the command line:

npx hardhat compile

Any new features or bugs that constitute the release should be checked.

To sanity check core functionality:

  • function signature quickfixes: open Quickfix.sol, and remove the function signature keyword until you have tested:
    • Constrain mutability by adding view/pure to function signature
    • Meet inheritance requirements by adding virtual/override on function signature
    • Provide accessibility by adding public/private to function signature
  • Implement interface quickfix: open CodeCoin.sol, delete the contract and import statement:
    • add back the openzepplin IERC20 import checking code completion
    • add contract CodeCoin is IERC20 {} to the body and confirm the implement interface quickfix is working
  • Single file rename: open Rename, rename the complete signature and confirm all usages are updated
  • Multi file rename: confirm npx hardhat compile, open Greeter.sol, rename the Auth contract, confirm npx hardhat compile still works
  • Imports: check import line errors by opening 404-non-existant.sol and uncommenting the import line, a 404 error should be reported inline. Add the comment back and check the other imports.
  • Confirm that Solidity highlighting works inside of markdown files like so:
import "./404-non-existant.sol";

contract Greeter {
    function greet() public pure returns (string memory) {
        return "Hello, World!";
    }
}

About

Manual smoke tests used during the release process

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published