-
Notifications
You must be signed in to change notification settings - Fork 14
Qase integration and ios test setup #12
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
base: main
Are you sure you want to change the base?
Qase integration and ios test setup #12
Conversation
- Introduced E2E testing framework in the `e2e` directory, including configuration files and test scripts. - Added `HomeOnboardingScreen` page object for managing onboarding screen interactions. - Implemented initial test for wallet app onboarding, verifying UI elements and welcome messages. - Updated `.gitignore` to exclude E2E test artifacts and configuration files. - Modified `app.json` to disable development client for production builds. - Added `package-lock.json` and `package.json` for E2E testing dependencies.
… multi-platform config support - Add Qase.io test management integration - Create platform-specific WebdriverIO configs (iOS/Android) - Implement qase() wrapper for automatic test result reporting - Add platform detection for test run naming ([iOS]/[Android]) - Support both iOS and Android e2e testing - Update README with platform-specific test commands
| // Cross-platform text selector | ||
| // For iOS: Use class chain or accessibility ID | ||
| // For Android: UiSelector works | ||
| const isIOS = (driver as any).capabilities.platformName === 'iOS'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible to use a type here instead of any ?
e2e/test/specs/onboarding.e2e.ts
Outdated
| describe('Onboarding Screen', () => { | ||
| it('TW-1: First launch', qase('TW-1', async () => { | ||
| // Wait for app to load | ||
| await driver.pause(3000); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Prefer to use toBeDisplayed or other waits instead of pause
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is done
e2e/data/wallet-details-for-test.ts
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Empty file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this has been removed
| * Provides a qase() function that matches @tetherto/qase-utils API | ||
| */ | ||
|
|
||
| import stripAnsi from 'strip-ansi'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this dependency be included in package.json?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah we need it for our integration to our test management tool , we send test reports to Qase so we can see test runs formthe tests
e2e/package.json
Outdated
| "@wdio/local-runner": "^9.13.0", | ||
| "@wdio/mocha-framework": "^9.13.0", | ||
| "@wdio/spec-reporter": "^9.13.0", | ||
| "qase-api-client": "^1.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is also listed in devDependencies, would remove from here.
|
@tobi-legan , aside from the comments above - I agree with @ignaciolarranaga 's comment on #11 that this (and #11) doesn't need to be a seperate project with new package.json |
- Added configuration files for E2E testing in the `test/e2e` directory. - Created `HomeOnboardingScreen` page object for managing onboarding interactions. - Developed initial test for wallet app onboarding, verifying UI elements and welcome messages. - Updated `package.json` and `package-lock.json` to include necessary dependencies for testing. - Modified `.gitignore` to exclude test artifacts and configuration files. - Removed legacy E2E testing setup from `e2e` directory.
- Added `dotenv`, `qase-api-client`, and `strip-ansi` to `package.json` and `package-lock.json`. - Updated test specifications path in `wdio.base.conf.ts` to point to the new structure. - Removed legacy `wdio.conf.ts` file. - Adjusted TypeScript configuration to exclude `node_modules` and `e2e` directories.
- Replace all 'any' types with proper TypeScript types (WebdriverIO.Capabilities, Record<string, unknown>, etc.) - Fix Android APK path in wdio.android.conf.ts (test/apps/app-release.apk) - Fix Android test script in package.json to use wdio.android.conf.ts - Add missing driver import in home-onboarding-screen.ts - All tests passing on both iOS and Android
Description
This PR adds Qase.io test management integration for e2e tests, enabling automatic test result reporting with platform-specific test run naming. It also introduces separate WebdriverIO configurations for iOS and Android platforms, making it easier to run and manage platform-specific tests.
Key additions:
qase-wrapper.ts) that provides aqase()function for wrapping test caseswdio.base.conf.ts,wdio.ios.conf.ts,wdio.android.conf.tstest:ios,test:android,test:allMotivation and Context
This change is required to:
The problem this solves: Previously, there was no way to automatically track test results in a centralized test management system, and running tests for different platforms required manual configuration changes.
Related Issue
PR fixes the following issue: N/A (New feature implementation - no existing issue)
Type of change
Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
This change requires a documentation update