Skip to content

Commit

Permalink
Add web smoketests (#4783)
Browse files Browse the repository at this point in the history
Add Positron web smoke tests. The web smoke tests require
[positron-license](https://github.com/posit-dev/positron-license) built
with a valid key stored in "file system parallel" to positron. This is
accomplished by pulling it down, installing the rust toolchain, and
running a cargo build.

Currently only running a couple tests in web mode. Future PRs will
enable more tests.

### QA Notes

All smoke tests pass
  • Loading branch information
testlabauto authored Sep 24, 2024
1 parent 416afc2 commit 9a48061
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 29 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/positron-full-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,34 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Checkout test licensing tool
run: |
cd ..
mkdir positron-license
cd positron-license
git clone https://${{ secrets.POSITRON_GITHUB_PAT }}@github.com/posit-dev/positron-license.git .
env:
GITHUB_TOKEN: ${{ secrets.POSITRON_GITHUB_PAT }}

- name: Install Rust latest nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true

- name: Build licensing tool
run: |
cd ..
cd positron-license/pdol
cargo build
- name: Echo license
run: |
cd ..
cd positron-license/pdol/target/debug
echo "${{ secrets.POSITRON_DEV_LICENSE }}" > pdol_rsa
chmod 600 pdol_rsa
- name: Setup Build Environment
run: |
sudo apt-get update
Expand Down Expand Up @@ -146,6 +174,19 @@ jobs:
id: electron-smoke-tests
run: DISPLAY=:10 yarn smoketest-no-compile --tracing

- name: Run Web Smoke Tests
env:
POSITRON_PY_VER_SEL: 3.10.12
POSITRON_R_VER_SEL: 4.4.0
id: electron-web-smoke-tests
run: DISPLAY=:10 yarn smoketest-web --tracing

- name: Clean up license files
if: always()
run: |
cd ..
rm -rf positron-license
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: success() || failure() # always run even if the previous step fails
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"smoketest-no-compile": "cd test/smoke && BUILD_ARTIFACTSTAGINGDIRECTORY=../../.build/logs/smoke-tests-electron node test/index.js",
"smoketest-pr": "cd test/smoke && BUILD_ARTIFACTSTAGINGDIRECTORY=../../.build/logs/smoke-tests-electron TEST_FILTER=/#pr/ node test/index.js",
"smoketest-merge-to-main": "cd test/smoke && BUILD_ARTIFACTSTAGINGDIRECTORY=../../.build/logs/smoke-tests-electron node test/index.js",
"smoketest-web": "cd test/smoke && BUILD_ARTIFACTSTAGINGDIRECTORY=../../.build/logs/smoke-tests-electron node test/index.js --web",
"download-builtin-extensions": "node build/lib/builtInExtensions.js",
"download-builtin-extensions-cg": "node build/lib/builtInExtensionsCG.js",
"download-quarto": "node build/lib/quarto.js",
Expand Down
58 changes: 29 additions & 29 deletions test/smoke/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -449,34 +449,34 @@ describe(`VSCode Smoke Tests (${opts.web ? 'Web' : 'Electron'})`, () => {
// if (!opts.web && !opts.remote) { setupLaunchTests(logger); }
setupVariablesTest(logger);
setupDataExplorerTest(logger);
setupDataExplorer100x100Test(logger);
setupPlotsTest(logger);
setupPythonConsoleTest(logger);
setupRConsoleTest(logger);
setupLargeDataFrameTest(logger);
setupNotebookCreateTest(logger);
setupConnectionsTest(logger);
setupNewProjectWizardTest(logger);
setupXLSXDataFrameTest(logger);
setupHelpTest(logger);
setupClipboardTest(logger);
setupTopActionBarTest(logger);
setupLayoutTest(logger);
setupNotebookVariablesTest(logger);
setupConsoleInputTest(logger);
setupConsoleANSITest(logger);
setupConsoleOutputLogTest(logger);
setupBasicRMarkdownTest(logger);
setupWelcomeTest(logger);
setupConsoleHistoryTest(logger);
setupShinyTest(logger);
setupFastExecutionTest(logger);
setupTestExplorerTest(logger);
setupRPKgDevelopment(logger);
setupInterpreterDropdownTest(logger);
setupViewersTest(logger);
setupVeryLargeDataFrameTest(logger);
setupGraphTrendTest(logger);
setupQuartoTest(logger);
if (!opts.web) { setupDataExplorer100x100Test(logger); }
if (!opts.web) { setupPlotsTest(logger); }
if (!opts.web) { setupPythonConsoleTest(logger); }
if (!opts.web) { setupRConsoleTest(logger); }
if (!opts.web) { setupLargeDataFrameTest(logger); }
if (!opts.web) { setupNotebookCreateTest(logger); }
if (!opts.web) { setupConnectionsTest(logger); }
if (!opts.web) { setupNewProjectWizardTest(logger); }
if (!opts.web) { setupXLSXDataFrameTest(logger); }
if (!opts.web) { setupHelpTest(logger); }
if (!opts.web) { setupClipboardTest(logger); }
if (!opts.web) { setupTopActionBarTest(logger); }
if (!opts.web) { setupLayoutTest(logger); }
if (!opts.web) { setupNotebookVariablesTest(logger); }
if (!opts.web) { setupConsoleInputTest(logger); }
if (!opts.web) { setupConsoleANSITest(logger); }
if (!opts.web) { setupConsoleOutputLogTest(logger); }
if (!opts.web) { setupBasicRMarkdownTest(logger); }
if (!opts.web) { setupWelcomeTest(logger); }
if (!opts.web) { setupConsoleHistoryTest(logger); }
if (!opts.web) { setupShinyTest(logger); }
if (!opts.web) { setupFastExecutionTest(logger); }
if (!opts.web) { setupTestExplorerTest(logger); }
if (!opts.web) { setupRPKgDevelopment(logger); }
if (!opts.web) { setupInterpreterDropdownTest(logger); }
if (!opts.web) { setupViewersTest(logger); }
if (!opts.web) { setupVeryLargeDataFrameTest(logger); }
if (!opts.web) { setupGraphTrendTest(logger); }
if (!opts.web) { setupQuartoTest(logger); }
// --- End Positron ---
});

0 comments on commit 9a48061

Please sign in to comment.