Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
5e9bf61
Playwright tests framework up and running simple tests.
robgruen Jan 21, 2025
1cd971d
Added playwright extension
robgruen Jan 22, 2025
a988eed
Allow setting of complex objects
robgruen Jan 22, 2025
301b7c0
working on playwright tests.
robgruen Jan 23, 2025
07ff7e8
updated so that "@shell set <name> <value>" will move and resize window
robgruen Jan 23, 2025
cc54173
1st test working!
robgruen Jan 23, 2025
c8a7a07
added zoom test (not yet woring)
robgruen Jan 23, 2025
835f7b3
Changed to use zoomFactor instead of zoomLevel.
robgruen Jan 23, 2025
a27d2de
config tests
robgruen Jan 23, 2025
04fea28
added more tests, small refactor
robgruen Jan 24, 2025
88f3f78
removed example test file
robgruen Jan 24, 2025
c0dc44f
tests can now run in parallel (based on each test file)
robgruen Jan 24, 2025
f476d6b
added session commands (unverified)
robgruen Jan 24, 2025
a45e338
added global test teardown and setup
robgruen Jan 24, 2025
8d69640
use locator instead of element lookup
robgruen Jan 24, 2025
552614b
more test updates
robgruen Jan 24, 2025
940da44
moved shell settings file to instance directory root folder.
robgruen Jan 25, 2025
792d868
tests intermittently passing
robgruen Jan 25, 2025
db3f6f8
updating wokflow
robgruen Jan 25, 2025
e50231b
moved file
robgruen Jan 25, 2025
fe4c9b8
updated workflow
robgruen Jan 25, 2025
13d8fae
updates
robgruen Jan 25, 2025
3745090
more changes
robgruen Jan 25, 2025
ebb896f
trying npx
robgruen Jan 25, 2025
1f1fd84
fixed working directory for npx
robgruen Jan 25, 2025
b6623b1
Added new session test
robgruen Jan 25, 2025
b600b48
starting to work on alternate to #phraseDiv
robgruen Jan 25, 2025
66cd16c
just running simple test in CI to debug test run failure
robgruen Jan 26, 2025
6d64167
slight action tweak
robgruen Jan 26, 2025
c73ce00
added test-results as artifacts
robgruen Jan 26, 2025
d47be5e
corrected playwright report path
robgruen Jan 26, 2025
443e012
debug cli message
robgruen Jan 26, 2025
09c6084
another cli test
robgruen Jan 26, 2025
c96b4ec
added getkeys so we can run shell tests
robgruen Jan 26, 2025
b2f0f61
added necessary perms to write id token
robgruen Jan 26, 2025
e3b3c48
removed duplicate
robgruen Jan 26, 2025
d33ca65
fixed getkeys path
robgruen Jan 26, 2025
7f410ff
set auth-type for azure login
robgruen Jan 26, 2025
c033946
removing identity based auth and updating getKeys to try to get keys …
robgruen Jan 26, 2025
f0460df
contue on failure to elevate
robgruen Jan 26, 2025
fc9cba0
Added missing throw
robgruen Jan 26, 2025
2cd1afc
minor refactor
robgruen Jan 26, 2025
d195af8
added cli debugging step back in
robgruen Jan 26, 2025
f21d1db
updated working directory for .env file
robgruen Jan 26, 2025
0576d89
updated test to just run on windows for now
robgruen Jan 26, 2025
9a204ea
enabled all tests
robgruen Jan 26, 2025
b3adc3f
added cron placeholder
robgruen Jan 26, 2025
f9bafc2
renamed method
robgruen Jan 26, 2025
6728930
Added console logging.
robgruen Jan 26, 2025
a2844d6
alternate selector for #phraseDiv
robgruen Jan 26, 2025
3039a57
tried another selector
robgruen Jan 26, 2025
bc0b33b
used testid attribute to find elements
robgruen Jan 26, 2025
92323a0
increased timeouts
robgruen Jan 26, 2025
7edaa32
removed testid locator...not much better.
robgruen Jan 26, 2025
a9c8efe
reduced timeout
robgruen Jan 27, 2025
df0aad7
turned on playwright debug mode
robgruen Jan 27, 2025
1e81047
More robust page finding logic.
robgruen Jan 27, 2025
192815b
removed playwright debug flag
robgruen Jan 27, 2025
fdaea97
testing no content printing
robgruen Jan 27, 2025
a81c8ef
small refactor
robgruen Jan 27, 2025
8384e0b
trying ubuntu and macos again
robgruen Jan 27, 2025
b546685
testing mac build
robgruen Jan 27, 2025
86160ac
macos build
robgruen Jan 27, 2025
fe06eee
fixed mac build, (not windows)
robgruen Jan 27, 2025
ac20c94
added build statements for each OS flavor
robgruen Jan 27, 2025
68fefb7
build shell without matrix
robgruen Jan 27, 2025
57af11d
removed mac & linux
robgruen Jan 27, 2025
107f827
test running shell
robgruen Jan 27, 2025
2af92f7
removing shell build
robgruen Jan 27, 2025
f199198
added back linux macos
robgruen Jan 27, 2025
f4177c2
added perms for linux
robgruen Jan 27, 2025
c53277e
fixed error
robgruen Jan 27, 2025
a523289
again disabled linux & ubuntu
robgruen Jan 27, 2025
6a4b4c5
disabled matrix
robgruen Jan 27, 2025
b3614fe
trying private keyvault
robgruen Jan 27, 2025
c26bc84
renamed
robgruen Jan 27, 2025
5a3a8f8
changed vault
robgruen Jan 27, 2025
4328723
Added getkeys debug launch configs
robgruen Jan 27, 2025
24361ec
setup shell simple tests for root package file
robgruen Jan 28, 2025
7fd1712
delete env file after tests
robgruen Jan 28, 2025
d7aee6a
Added shell & cli smoke tests to build
robgruen Jan 28, 2025
63b2e3e
updated shell smoke test for windows only
robgruen Jan 28, 2025
d5f1e8f
added continue-on-error
robgruen Jan 28, 2025
c0c10f2
added continue-on-error
robgruen Jan 28, 2025
3599a35
added playwright dependency
robgruen Jan 28, 2025
10a9de0
changed full shell tests to schedule based workflow
robgruen Jan 28, 2025
dd26aa2
Merge remote-tracking branch 'origin' into dev/robgruen/electron_tests
robgruen Jan 28, 2025
66559f2
moved cleanup step to the end
robgruen Jan 28, 2025
13014db
added missing copywrite
robgruen Jan 28, 2025
ea07a39
remove continue on fail
robgruen Jan 28, 2025
0611eaa
fixed yml error
robgruen Jan 28, 2025
1726bba
renamed test to shell:test
robgruen Jan 28, 2025
0b65f6f
sorted packages
robgruen Jan 28, 2025
2a4f329
ran prettier
robgruen Jan 28, 2025
c35ef2c
added token perns
robgruen Jan 28, 2025
6127fad
changed if condition for windows
robgruen Jan 28, 2025
b28981b
shell full tests on main brainch only
robgruen Jan 28, 2025
98d2a62
Merge branch 'main' into dev/robgruen/electron_tests
robgruen Jan 28, 2025
f7c22df
fixed merge issue
robgruen Jan 28, 2025
96f4e6d
Merge branch 'dev/robgruen/electron_tests' of https://github.com/micr…
robgruen Jan 28, 2025
2db0bfd
only install playwright on windows boxes
robgruen Jan 28, 2025
6c70da9
updated to not run on merge_group
robgruen Jan 28, 2025
a839a1c
shell tests only run on schedule, not push
robgruen Jan 28, 2025
6e684cd
Merge branch 'main' into dev/robgruen/electron_tests
robgruen Jan 28, 2025
67eabf5
fixed merge issue
robgruen Jan 28, 2025
8d59ec4
fixed other merge issue
robgruen Jan 28, 2025
25ae3b1
changing getKeys call to use npm
robgruen Jan 28, 2025
5afd983
try to emulate virtual display on linux
robgruen Jan 28, 2025
0c2a811
Merge remote-tracking branch 'origin' into dev/robgruen/electron_tests
robgruen Jan 28, 2025
440a308
emulate display on linux
robgruen Jan 28, 2025
b54d270
only test one version of node
robgruen Jan 29, 2025
bba4e15
added pull_requests_target workflow for forked PR requests
robgruen Jan 29, 2025
0bdf382
Merge remote-tracking branch 'origin' into dev/robgruen/electron_tests
robgruen Jan 29, 2025
ffbc8cf
Merge branch 'main' into dev/robgruen/electron_tests
robgruen Jan 30, 2025
40a3375
fixed merge coflict
robgruen Jan 30, 2025
51a28de
updated trigger
robgruen Jan 30, 2025
a3cdcd0
formatting
robgruen Jan 30, 2025
4fa161b
trying npx again
robgruen Jan 30, 2025
c28c9e9
fixed error
robgruen Jan 30, 2025
a1700d3
small changes
robgruen Jan 30, 2025
c86da55
removed --no-sandbox
robgruen Jan 30, 2025
8d8ed6e
removed debugger flag
robgruen Jan 30, 2025
48b47ea
added electron debugging flag
robgruen Jan 30, 2025
6963b8d
added typeagent tracing
robgruen Jan 30, 2025
46faa9f
more logging
robgruen Jan 30, 2025
22c16e3
added timeout for first window
robgruen Jan 30, 2025
886392e
better window finding logic
robgruen Jan 30, 2025
df8585c
logic update
robgruen Jan 30, 2025
2dcd540
updated window finding logic
robgruen Jan 30, 2025
1197565
small refactoring, turned off debug messages re-enabled linux
robgruen Jan 30, 2025
c89a0b2
remove linux, &branch
robgruen Jan 30, 2025
f436ba4
Merge branch 'main' into dev/robgruen/electron_tests
robgruen Jan 30, 2025
c9392c9
ran pretier
robgruen Jan 30, 2025
30d9a6c
Merge branch 'dev/robgruen/electron_tests' of https://github.com/micr…
robgruen Jan 30, 2025
17a9806
removed branch push trigger
robgruen Jan 30, 2025
0644b73
added the ability to handle streaming agent messages.
robgruen Feb 2, 2025
de0b535
Merge remote-tracking branch 'origin' into dev/robgruen/electron_tests
robgruen Feb 2, 2025
10b5fdf
fixed test
robgruen Feb 2, 2025
a83d757
started adding list agent tests
robgruen Feb 3, 2025
e3f408e
cleanup
robgruen Feb 3, 2025
8ee627a
cleanup
robgruen Feb 3, 2025
1e8e3e0
deleted unused workflow
robgruen Feb 3, 2025
c1c41c1
small refactor
robgruen Feb 3, 2025
80595c4
list agent tests working
robgruen Feb 3, 2025
1ed6f01
ran prettier
robgruen Feb 3, 2025
1f0aa03
re-enabled linux shell tests
robgruen Feb 3, 2025
471f803
fixed session tests
robgruen Feb 3, 2025
7eafd79
ran prettier
robgruen Feb 3, 2025
56684da
Merge branch 'main' into dev/robgruen/electron_tests
robgruen Feb 3, 2025
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
44 changes: 0 additions & 44 deletions .github/workflows/build-ts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,6 @@ jobs:
working-directory: ts
run: |
pnpm install --frozen-lockfile --strict-peer-dependencies
# - name: Install Playwright Browsers
# if: ${{ runner.os == 'windows' && matrix.version == '22' }}
# run: pnpm exec playwright install --with-deps
# working-directory: ts/packages/shell
- name: Build
if: ${{ github.event_name != 'pull_request' || steps.filter.outputs.ts == 'true' }}
working-directory: ts
Expand All @@ -85,43 +81,3 @@ jobs:
working-directory: ts
run: |
npm run lint
# - name: Login to Azure
# if: ${{ github.event_name != 'merge_group' }}
# uses: azure/login@v2.2.0
# with:
# client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_5B0D2D6BA40F4710B45721D2112356DD }}
# tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_39BB903136F14B6EAD8F53A8AB78E3AA }}
# subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_F36C1F2C4B2C49CA8DD5C52FAB98FA30 }}
# - name: Get Keys
# if: ${{ github.event_name != 'merge_group' }}
# run: |
# node tools/scripts/getKeys.mjs --vault build-pipeline-kv
# working-directory: ts
# - name: Test CLI - smoke
# if: ${{ github.event_name != 'merge_group' }}
# run: |
# npm run start:dev 'prompt' 'why is the sky blue'
# working-directory: ts/packages/cli
# continue-on-error: true
# - name: Shell Tests - smoke (windows)
# if: ${{ github.event_name != 'merge_group' && runner.os == 'windows' && matrix.version == '22' }}
# timeout-minutes: 60
# run: |
# npx playwright test simple.spec.ts
# rm ../../.env
# - name: Shell Tests - smoke (linux)
# if: ${{ github.event_name != 'merge_group' && runner.os == 'Linux' && matrix.version == '22' }}
# timeout-minutes: 60
# run: |
# Xvfb :99 -screen 0 1600x1200x24 & export DISPLAY=:99
# npx playwright test simple.spec.ts
# rm ../../.env
# working-directory: ts/packages/shell
# continue-on-error: true
# - name: Live Tests
# if: ${{ github.event_name != 'merge_group' && runner.os == 'linux' && matrix.version == '22' }}
# timeout-minutes: 60
# run: |
# npm run test:live
# working-directory: ts
# continue-on-error: true
12 changes: 7 additions & 5 deletions .github/workflows/shell-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["windows-latest"]
os: ["windows-latest", "ubuntu-latest"]
version: [20]

runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -98,19 +98,15 @@ jobs:
timeout-minutes: 60
run: |
npm run shell:test
rm ../../.env
working-directory: ts/packages/shell
continue-on-error: true

- name: Shell Tests (linux)
if: ${{ runner.os == 'Linux' }}
timeout-minutes: 60
# https://github.com/microsoft/playwright/issues/34251 - sysctl command
run: |
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Xvfb :99 -screen 0 1600x1200x24 & export DISPLAY=:99
npm run shell:test
rm ../../.env
working-directory: ts/packages/shell
continue-on-error: true

Expand All @@ -129,3 +125,9 @@ jobs:
path: ts/packages/shell/playwright-report/
overwrite: true
retention-days: 30

- name: Clean up Keys
run: |
rm ./.env
working-directory: ts
if: always()
121 changes: 0 additions & 121 deletions .github/workflows/smoke-tests-pull_request_targets.yml.bak

This file was deleted.

7 changes: 3 additions & 4 deletions .github/workflows/smoke-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ on:
workflow_dispatch:
push:
branches: ["main"]
# pull_request:
# branches: ["main"]
pull_request_target:
branches: ["main"]
merge_group:
Expand All @@ -27,7 +25,9 @@ permissions:

env:
NODE_OPTIONS: --max_old_space_size=8192
DEBUG: pw:browser*
# DEBUG: pw:browser* # PlayWright debug messages
# ELECTRON_ENABLE_LOGGING: true # Electron debug messages
# DEBUG: typeagent:* # TypeAgent debug messages

jobs:
shell_and_cli:
Expand All @@ -37,7 +37,6 @@ jobs:
fail-fast: false
matrix:
os: ["ubuntu-latest", "windows-latest"]
#os: ["ubuntu-latest"]
version: [20]

runs-on: ${{ matrix.os }}
Expand Down
64 changes: 64 additions & 0 deletions ts/packages/shell/test/listAgent.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

import test, {
ElectronApplication,
Page,
_electron,
_electron as electron,
expect,
} from "@playwright/test";
import {
exitApplication,
getAppPath,
sendUserRequestAndWaitForCompletion,
getLaunchArgs,
startShell,
testUserRequest,
} from "./testHelper";

// Annotate entire file as serial.
test.describe.configure({ mode: "serial" });

test.describe("List Agent Tests", () => {
test("create_update_clear_list", async ({}, testInfo) => {
console.log(`Running test '${testInfo.title}`);

await testUserRequest(
[
"create a shopping list",
"what's on the shopping list?",
"add eggs, milk, flour to the shopping list",
"what's on the shopping list?",
"remove milk from the shopping list",
"what's on the shopping list?",
"clear the shopping list",
"what's on the shopping list?",
],
[
"Created list: shopping",
"List 'shopping' is empty",
"Added items: eggs,milk,flour to list shopping",
"eggs\nmilk\nflour",
"Removed items: milk from list shopping",
"eggs\nflour",
"Cleared list: shopping",
"List 'shopping' is empty",
],
);
});

// test("delete_list", async ({}, testInfo) => {
// console.log(`Running test '${testInfo.title}`);

// await testUserRequest(
// [
// "delete the shopping list",
// "is there a shopping list?"
// ],
// [
// "Cleared list: shopping",
// "List 'shopping' is empty"
// ]);
// });
});
Loading