Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
0557f09
test(appium): add SDK initialization, user, push, and tags tests
fadi-george Apr 10, 2026
fe3143a
feat(appium): add waitForNotification helper
fadi-george Apr 10, 2026
1b05da5
feat(appium): add BUNDLE_ID env var support
fadi-george Apr 10, 2026
680f482
test: add notification helpers
fadi-george Apr 10, 2026
3ebadd7
test(appium): improve scrolling and image notifications
fadi-george Apr 10, 2026
d6ae4ea
chore(appium): migrate to vite-plus with oxc tooling
fadi-george Apr 11, 2026
7884cb6
test(appium): add in-app messaging tests and refactor scrolling
fadi-george Apr 11, 2026
1274650
test(appium): refactor tooltip testing logic
fadi-george Apr 11, 2026
389cfca
test(appium): improve scroll and text matching APIs
fadi-george Apr 11, 2026
a4b4d93
test(appium): refactor element selection to use scrollToEl
fadi-george Apr 11, 2026
e51f464
test(appium): add alias functionality tests
fadi-george Apr 11, 2026
038c6e9
test(appium): expand alias tests and remove .only
fadi-george Apr 11, 2026
76220fa
test(appium): add email functionality tests
fadi-george Apr 11, 2026
ec45f35
test(appium): add SMS test and centralize test data
fadi-george Apr 11, 2026
b50b048
test(appium): add tag tests
fadi-george Apr 13, 2026
81ddbc7
test(appium): complete tag removal tests
fadi-george Apr 13, 2026
bda87ee
test(appium): refactor login flow and merge tests
fadi-george Apr 13, 2026
ed2e9c0
test(appium): add shared store service for state management and scrol…
fadi-george Apr 14, 2026
4a2154a
chore: remove cursor rules config files
fadi-george Apr 14, 2026
db51427
test(appium): add local test runner and env config
fadi-george Apr 14, 2026
d57fd0e
test(appium): limit support to iOS and Flutter only
fadi-george Apr 14, 2026
b8e44f8
test(appium): update iOS defaults to iPhone 17/iOS 26.2
fadi-george Apr 14, 2026
29e66db
docs(appium): add README files for test setup
fadi-george Apr 14, 2026
48f5446
fix(appium): set BrowserStack maxInstances to 5 and fix stale help text
fadi-george Apr 14, 2026
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
14 changes: 0 additions & 14 deletions .cursor/rules/bun.mdc

This file was deleted.

38 changes: 0 additions & 38 deletions .cursor/rules/linear.mdc

This file was deleted.

38 changes: 0 additions & 38 deletions .cursor/rules/pr-conventions.mdc

This file was deleted.

3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["VoidZero.vite-plus-extension-pack"]
}
7 changes: 6 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
{
"editor.defaultFormatter": "oxc.oxc-vscode",
"oxc.fmt.configPath": "./appium/vite.config.ts",
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSaveMode": "file",
"editor.codeActionsOnSave": {
"source.fixAll.oxc": "explicit"
},
"[yaml]": {
"editor.defaultFormatter": "redhat.vscode-yaml"
}
Expand Down
1 change: 1 addition & 0 deletions appium/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules/
dist/
results/
.env
55 changes: 55 additions & 0 deletions appium/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Appium E2E Tests

End-to-end tests for OneSignal mobile SDKs using [Appium](https://appium.io/) and [WebdriverIO](https://webdriver.io/).

## Prerequisites

- [Node.js](https://nodejs.org/) (or [Bun](https://bun.sh/))
- [Appium](https://appium.io/docs/en/latest/quickstart/install/) (`npm i -g appium`)
- Appium drivers:
- iOS: `appium driver install xcuitest`
- Android: `appium driver install uiautomator2`
- [Flutter SDK](https://flutter.dev/docs/get-started/install) (for Flutter tests)
- Xcode with iOS simulators (for iOS)
- Android SDK with an AVD configured (for Android)

## Directory Structure

```
appium/
├── scripts/
│ ├── run-local.sh # Local test runner — builds, launches, and runs tests
│ └── .env.example # Template for local env vars (copy to .env)
├── tests/
│ ├── helpers/ # Shared utilities (selectors, app helpers, logger)
│ └── specs/ # Test files (numbered for execution order)
├── wdio.shared.conf.ts # Shared WebdriverIO config
├── wdio.ios.conf.ts # iOS-specific config
└── wdio.android.conf.ts # Android-specific config
```

## Running Tests Locally

See [`scripts/README.md`](scripts/README.md) for setup and usage instructions.

Quick start:

```bash
cd scripts
cp .env.example .env # add your OneSignal credentials
./run-local.sh --platform=ios --sdk=flutter
```

## Test Specs

Tests are numbered to run in dependency order (user login happens before push/email/SMS tests that require a logged-in user):

| File | Description |
|---|---|
| `1_user.spec.ts` | Login, logout, anonymous state |
| `2_push.spec.ts` | Push subscription |
| `3_iam.spec.ts` | In-app messaging |
| `4_alias.spec.ts` | Alias operations |
| `5_email.spec.ts` | Email subscription |
| `6_sms.spec.ts` | SMS subscription |
| `7_tag.spec.ts` | Tag operations |
Loading
Loading