Skip to content
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

Testing remaining Unit and Integration test suites #1923

Closed
wants to merge 89 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
1087ec4
Add remaining unit/integration tests
Dec 6, 2023
44454a9
Removing Browser Integration Tests to debug
Dec 6, 2023
b1da453
Adding positron-code-cells to test-remote
Dec 6, 2023
84f5b6f
Adding Smoke Tests with example Variables test
Dec 8, 2023
416e45b
Isolating Electron Integration tests
Dec 11, 2023
778f9f1
Merge branch 'main' into test/add-more-ci-tests
Dec 11, 2023
3953dcf
Merge branch 'main' into test/add-more-ci-tests
Dec 11, 2023
59ceed9
Adding back full suite of tests
Dec 11, 2023
e1e33d8
Turning off all but Smoke tests
Dec 11, 2023
fcc2843
Turning back on all tests
Dec 11, 2023
9db255e
Removing tests from every PR and creating full test suite job
Dec 12, 2023
f0c68f3
Increasing timeout for full suite
Dec 14, 2023
e96eeee
Adding Browser Integration tests
Dec 14, 2023
e74cc0e
start sketching out variables backend
jmcphers Dec 15, 2023
41b9ad8
Merge remote-tracking branch 'origin/main' into feature/variables-ope…
jmcphers Dec 15, 2023
af79cc6
initial generated version of variables comm (ts)
jmcphers Dec 15, 2023
25c286b
generate schemas for each component
jmcphers Dec 15, 2023
fefd27a
type derivation for refs and containers (WIP)
jmcphers Dec 16, 2023
02b5ffc
parse refs for non-object types
jmcphers Dec 16, 2023
03044e0
add data tool backend example; handle object schema only; better errors
jmcphers Dec 19, 2023
35ed714
add description to all summary values; more error work
jmcphers Dec 19, 2023
d5dfbaf
use a language-specific array designation
jmcphers Dec 19, 2023
4db6a25
typescript: create type aliases for non-object schemas
jmcphers Dec 19, 2023
7fcbfcb
use a void promise when no result is expected
jmcphers Dec 19, 2023
e886a47
Merge remote-tracking branch 'origin/main' into feature/variables-ope…
jmcphers Dec 19, 2023
0e71d02
initial compilation of data tool schema
jmcphers Dec 19, 2023
22a4f93
Refactoring in Console
softwarenerd Dec 19, 2023
d06c67d
Adding PositronDataToolService
softwarenerd Dec 19, 2023
d12f857
Maintain columns width percent between instances
softwarenerd Dec 19, 2023
2c8123c
implement enum visitor
jmcphers Dec 19, 2023
1b77fcb
keep context in enum visitor
jmcphers Dec 19, 2023
3fffb55
emit typescript enum types using visitor
jmcphers Dec 19, 2023
194d382
sanitize identifiers; use enum vals in TS interfaces
jmcphers Dec 19, 2023
9873787
use enum visitor to generate python enums
jmcphers Dec 19, 2023
e02c791
use typescript enums in parameter types
jmcphers Dec 19, 2023
25ade70
clean up imports and comments
jmcphers Dec 20, 2023
63b6fe4
pass enter key events on multiline statements to the code editor widget
seeM Dec 20, 2023
c02945d
Beginning of remembering state in PositronDataToolInstance
softwarenerd Dec 20, 2023
d427c6b
Merge branch 'main' into softwarenerd
softwarenerd Dec 20, 2023
4c9d798
A little refactoring
softwarenerd Dec 20, 2023
eb8c4b7
generate Rust type aliases
jmcphers Dec 20, 2023
224c26c
create object visitor to discover nested object types
jmcphers Dec 20, 2023
8c2f970
recursive object enumeration for python
jmcphers Dec 20, 2023
e6b64f2
recursive object enumeration for typescript
jmcphers Dec 20, 2023
aacda73
Merge branch 'main' into test/add-more-ci-tests
Dec 20, 2023
f9868b2
export enums
jmcphers Dec 20, 2023
e42fe1f
honor required/optional fields in typescript
jmcphers Dec 20, 2023
bc55442
use Option<type> for non-required members in Rust
jmcphers Dec 20, 2023
c5be0a9
use Optional for non-required types on Python dataclasses
jmcphers Dec 20, 2023
5e7205f
add 'view' method for variables
jmcphers Dec 20, 2023
afc0674
A bunch of work on using react-window - very messy
softwarenerd Dec 21, 2023
a57fe17
use `DOM.getActiveWindow()`
seeM Dec 26, 2023
42293fc
Merge remote-tracking branch 'origin/main' into feature/variables-ope…
jmcphers Dec 20, 2023
d4ef43a
don't import Event without front-end events
jmcphers Dec 20, 2023
65c97fc
allow "mildly illegal" cross contract refs for shared frontend/backen…
jmcphers Dec 21, 2023
6ffc0cf
Merge branch 'main' into softwarenerd
softwarenerd Dec 21, 2023
47c0824
Merge pull request #1974 from posit-dev/feature/variables-openrpc
jmcphers Dec 21, 2023
6460bca
update ark to 0.1.39
jmcphers Dec 21, 2023
3c44091
Merge pull request #1977 from posit-dev/softwarenerd
softwarenerd Dec 21, 2023
2a74066
Merge pull request #1979 from posit-dev/feature/ark-0.1.39
jmcphers Dec 21, 2023
9d7d3cf
Specify frontend message interface
lionel- Dec 18, 2023
fd7c296
Bump positron-python
seeM Dec 22, 2023
6df00a6
eng: fix waitServer not working in unit test debug (#201334)
connor4312 Dec 20, 2023
10fd28f
Switch to frontend message interface
lionel- Dec 18, 2023
74c3997
Merge pull request #1984 from posit-dev/bump-python
petetronic Dec 22, 2023
9d7339a
Remove `ShowHelp` compatibility code
lionel- Dec 18, 2023
afb911d
Add support for "any" type in the comm generator
lionel- Dec 22, 2023
dcfe77c
Add `call_method` method in the frontend comm
lionel- Dec 22, 2023
80d94bd
Rename Rust struct fields to camelCase
lionel- Dec 22, 2023
939a189
Remove old event generation infrastructure
lionel- Dec 22, 2023
79600ef
Move generation of event enum type to new infra
lionel- Dec 22, 2023
3452db6
Use snake_case in TS message fields
lionel- Dec 22, 2023
f00b470
Fix extra generated space in Python comms
lionel- Dec 23, 2023
b0016d9
Bump positron-python
lionel- Dec 23, 2023
600e222
Bump ark to 0.1.40
lionel- Dec 23, 2023
734af2d
Bump positron-python
seeM Dec 26, 2023
a577bb0
Merge pull request #1986 from posit-dev/feature/frontend-comm
lionel- Dec 23, 2023
f8a9ab5
Merge pull request #1991 from posit-dev/bump-python
seeM Dec 26, 2023
66fb894
Bump positron-python
seeM Dec 27, 2023
e7c6599
Merge pull request #1972 from posit-dev/pass-enter-events-to-code-edi…
seeM Dec 27, 2023
775b670
Add the `open_editor` frontend event
seeM Dec 27, 2023
83c589d
Merge pull request #1993 from posit-dev/bump-python
seeM Dec 27, 2023
33f9244
Add the `clear_console` frontend event
seeM Dec 27, 2023
09c08d9
Merge pull request #1992 from posit-dev/open-editor-event
seeM Dec 28, 2023
5e0b25f
Merge pull request #1995 from posit-dev/clear-console-event
seeM Jan 2, 2024
3ea9333
Rename plural `Params` to singular `Param`
lionel- Jan 2, 2024
8f44f99
Remove `msg_type` field in RPC requests
lionel- Jan 2, 2024
0eff50d
Update year in generated comm files
lionel- Jan 2, 2024
4d89be9
Fix ESLint warnings
lionel- Jan 2, 2024
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
13 changes: 8 additions & 5 deletions .github/workflows/positron-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
linux:
name: Tests on Linux
runs-on: ubuntu-latest
timeout-minutes: 30
timeout-minutes: 45
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
POSITRON_BUILD_NUMBER: 0 # CI skips building releases
Expand Down Expand Up @@ -55,14 +55,17 @@ jobs:
- name: Compile Integration Tests
run: yarn --cwd test/integration/browser compile

- name: Compile Smoke Tests
run: yarn --cwd test/smoke compile

- name: Run Unit Tests (node.js)
id: nodejs-unit-tests
run: yarn test-node

- name: Run Unit Tests (Browser, Chromium)
id: browser-unit-tests
run: DISPLAY=:10 yarn test-browser-no-install --browser chromium

- name: Run Integration Tests (Electron)
id: electron-integration-tests
run: DISPLAY=:10 ./scripts/test-integration.sh

- name: Run Smoke Tests (Electron)
id: electron-smoke-tests
run: DISPLAY=:10 yarn smoketest-no-compile --tracing
86 changes: 86 additions & 0 deletions .github/workflows/positron-full-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: "Positron: Full Test Suite"

# Run tests daily at 4am UTC (11p EST) on weekdays for now, or manually
on:
schedule:
- cron: "0 4 * * 1-5"
workflow_dispatch:

jobs:

linux:
name: Tests on Linux
runs-on: ubuntu-latest
timeout-minutes: 60
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
POSITRON_BUILD_NUMBER: 0 # CI skips building releases
steps:
- uses: actions/checkout@v4

- name: Setup Build Environment
run: |
sudo apt-get update
sudo apt-get install -y vim curl build-essential clang make cmake git r-base-dev python3-pip python-is-python3 libsodium-dev libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1 libnss3 libnspr4 libasound2 libkrb5-dev
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
sudo chmod +x /etc/init.d/xvfb
sudo update-rc.d xvfb defaults
sudo service xvfb start
- uses: actions/setup-node@v3
with:
node-version: 18

- name: Execute yarn
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
POSITRON_GITHUB_PAT: ${{ secrets.POSITRON_GITHUB_PAT }}
run: |
# Install Yarn
npm install -g yarn

# Install node-gyp; this is required by some packages, and yarn
# sometimes fails to automatically install it.
yarn global add node-gyp

# Perform the main yarn command; this installs all Node packages and
# dependencies
yarn --immutable --network-timeout 120000

- name: Compile and Download
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions

- name: Compile Integration Tests
run: yarn --cwd test/integration/browser compile

- name: Compile Smoke Tests
run: yarn --cwd test/smoke compile

- name: Run Unit Tests (Electron)
id: electron-unit-tests
run: DISPLAY=:10 ./scripts/test.sh

- name: Run Unit Tests (node.js)
id: nodejs-unit-tests
run: yarn test-node

- name: Run Unit Tests (Browser, Chromium)
id: browser-unit-tests
run: DISPLAY=:10 yarn test-browser-no-install --browser chromium

- name: Run Integration Tests (Electron)
id: electron-integration-tests
run: DISPLAY=:10 ./scripts/test-integration.sh

- name: Run Integration Tests (Remote)
id: electron-remote-integration-tests
timeout-minutes: 15
run: DISPLAY=:10 ./scripts/test-remote-integration.sh

- name: Run Integration Tests (Browser, Chromium)
id: browser-integration-tests
run: DISPLAY=:10 ./scripts/test-web-integration.sh --browser chromium

- name: Run Smoke Tests (Electron)
id: electron-smoke-tests
run: DISPLAY=:10 yarn smoketest-no-compile --tracing
11 changes: 8 additions & 3 deletions extensions/jupyter-adapter/src/LanguageRuntimeAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,16 @@ export class LanguageRuntimeAdapter
// Create the request. This uses a JSON-RPC 2.0 format, with an
// additional `msg_type` field to indicate that this is a request type
// for the frontend comm.
//
// NOTE: Currently using nested RPC messages for convenience but
// we'd like to do better
const request = {
msg_type: 'rpc_request',
jsonrpc: '2.0',
method: method,
params: args,
method: 'call_method',
params: {
method,
params: args
},
};

// Return a promise that resolves when the server side of the frontend
Expand Down
2 changes: 1 addition & 1 deletion extensions/positron-python
2 changes: 1 addition & 1 deletion extensions/positron-r/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@
},
"positron": {
"binaryDependencies": {
"ark": "0.1.38"
"ark": "0.1.40"
}
}
}
Loading
Loading