[Win32] Create JS Bundle for E2E Spec Files and Publish as NPM Package (#2345)

* Adding package that includes all FURN automated testing dependencies

* Adding nuget publish for tester deps

* Temporarily post nuget package for testing

* Temporarily post nuget package for testing

* Removing param

* Making param false

* Reverting .ado changes and adding fields in package.json

* Testing nuget push

* Adding yarn.lock

* Revert "Adding yarn.lock"

This reverts commit 0948725dcf.

* Testing CI

* Testing CI

* Testing nuget publish

* removing publish temporarily

* Removing unwanted dep

* Updating deps

* Adding nuget publish job to ado

* Removing unwanted changes

* Removing unwanted changes

* Removing unwanted changes

* Integrating Webpack to create a JS bundle containing all win32 spec files

* Creating bundle in publish pipeline so it's included in the npm package

* Removing unwanted changes

* Reverting unwanted changes

* Reverting

* Reverting testing change

* Reverting newline

* Change files

* Reverting unnecessary .ado change

* Reverting whitespace

* Adding build script to /E2E

* Moving E2E testing files to its own package within /apps. This allows us to export as an NPM package easier (and allows us to consume the testing code outside of this repo)

* Updating pipeline refs to apps/E2E

* Adding support for metro within apps/E2E

* Fixing imports

* Change files

* Fixing Win32 wdio.conf.ts specs path

* Fix imports

* Adding missing dev dep

* Updating yarn.lock

* Re-creating yarn.lock

* Updating yarn conflicts

* Fixing links

* Adding missing dep

* Updating path to no hoisted packages

* Fixing package path

* Adding condition in BasePage
This commit is contained in:
Samuel Freiberg 2022-11-28 20:36:02 -07:00 коммит произвёл GitHub
Родитель 58041c4748
Коммит 0d37c13db9
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
149 изменённых файлов: 1415 добавлений и 1045 удалений

Просмотреть файл

@ -13,7 +13,7 @@ steps:
- script: |
yarn e2etest:ios
workingDirectory: apps/fluent-tester
workingDirectory: apps/E2E
displayName: 'run E2E iOS tests'
condition: succeeded()
@ -22,4 +22,4 @@ steps:
applicationType: ios
platform: 'ios'
buildArtifacts: variables['task.Build.status']
directory: $(Build.SourcesDirectory)/apps/fluent-tester
directory: $(Build.SourcesDirectory)/apps/E2E

Просмотреть файл

@ -13,7 +13,7 @@ steps:
- script: |
yarn e2etest:macos
workingDirectory: apps/fluent-tester
workingDirectory: apps/E2E
displayName: 'run E2E macos tests'
condition: succeeded()
@ -22,4 +22,4 @@ steps:
applicationType: macos
platform: 'macos'
buildArtifacts: variables['task.Build.status']
directory: $(Build.SourcesDirectory)/apps/fluent-tester
directory: $(Build.SourcesDirectory)/apps/E2E

Просмотреть файл

@ -59,7 +59,7 @@ steps:
- script: |
yarn e2etest:windows
workingDirectory: apps\fluent-tester
workingDirectory: apps\E2E
displayName: 'run E2E UWP tests'
condition: succeeded()
@ -70,4 +70,4 @@ steps:
applicationType: UWP
platform: windows
buildArtifacts: variables['task.Build.status']
directory: $(Build.SourcesDirectory)/apps/fluent-tester
directory: $(Build.SourcesDirectory)/apps/E2E

Просмотреть файл

@ -12,7 +12,7 @@
### UWP Additional Prerequisites
- [UWP Prerequisites](../../../fluent-tester/docs/windows.md)
- [UWP Prerequisites](../fluent-tester/docs/windows.md)
## MacOS Prerequisites
@ -49,9 +49,9 @@ and drag & drop the **XCode Helper** app to **Security & Privacy -> Privacy -> A
1. Follow step #1 from "Win32 Steps" section above.
2. Start the server
- C:\repo\fluentui-react-native> `cd apps\windows`
- C:\repo\fluentui-react-native\apps\windows> `yarn start`
- C:\repo\fluentui-react-native\apps\E2E> `yarn start`
3. Open a new command prompt and run the E2E tests
- C:\repo\fluentui-react-native\apps\windows> `yarn e2etest`
- C:\repo\fluentui-react-native\apps\E2E> `yarn e2etest:windows`
_Note: It could take up to a minute to load the test app with WebDriverIO, don't panic, the tests will run :)_
@ -65,7 +65,7 @@ _Note: It could take up to a minute to load the test app with WebDriverIO, don't
- C:\repo\fluentui-react-native> `cd apps\fluent-tester`
- C:\repo\fluentui-react-native\apps\fluent-tester> `yarn start`
4. Open a new command prompt and run the E2E tests
- C:\repo\fluentui-react-native\apps\fluent-tester> `yarn e2etest:macos`
- C:\repo\fluentui-react-native\apps\E2E> `yarn e2etest:macos`
_Note: It could take up to a minute to load the test app with WebDriverIO, don't panic, the tests will run :)_
@ -75,7 +75,7 @@ You just added a new component to FURN... Awesome! Now we need to make sure we h
## Create New E2E Testing Folder for the New Component
All our E2E testing logic exists in _/apps/fluent-tester/src/E2E/_.
All our E2E testing logic exists in _/apps/E2E/src/_.
Testing is split-up on a **per-component** basis. Each component's testing story is made up of two parts - a **Page Object** and a **Spec Document**.
@ -114,7 +114,7 @@ For each component/scenario you want to test, you will have a page object class
Page Object is a design pattern which has become popular in test automation for enhancing test maintenance and reducing code duplication. A [page object](https://webdriver.io/docs/pageobjects.html) is an object-oriented class that serves as an interface to a page of you testing app. The tests then use the methods of this Page Object whenever they need to interact with the UI of that page.
The benefit is that if the UI changes for the test page, the tests themselves dont need to change, only the code within the page object needs to change.
Page Objects should be put in apps/fluent-tester/src/E2E/_ *ComponentToBeTested* _/pages/.
Page Objects should be put in apps/E2E/src/_ *ComponentToBeTested* _/pages/.
In most cases, you can copy/paste ButtonPageObject.ts and simply change all instances of Button to your new component.
@ -193,7 +193,7 @@ You can view the spec report right as E2E testing is finished. It shows the fail
In the example below, the SVG test is the one failing the run, and at the bottom, you can see an error message.
![E2E Error Debugging](../../../../assets/E2E/E2E_spec_reporter.png)
![E2E Error Debugging](../../assets/E2E/E2E_spec_reporter.png)
When running E2E locally, after failing an E2E run, you will get a screenshot of the error in /errorShots/ of the platform you tested.
@ -211,9 +211,9 @@ This will bundle all the generated information and create a report for you to re
When an E2E test run fails within our CI, crucial information is output to Azure-Pipelines to help you debug the failure. Follow these steps:
1. On the PR page, navigate to the "Checks" tab, ensure you've selected the "PR" tab on the left, and press "View more details on Azure Pipelines" at the bottom. ![E2E_Debugging_Step_1](../../../../assets/E2E/E2E_Debugging_Step_1.png)
1. On the PR page, navigate to the "Checks" tab, ensure you've selected the "PR" tab on the left, and press "View more details on Azure Pipelines" at the bottom. ![E2E_Debugging_Step_1](../../assets/E2E/E2E_Debugging_Step_1.png)
2. Click on the "# published" section. ![E2E_Debugging_Step_2](../../../../assets/E2E/E2E_Debugging_Step_2.png)
2. Click on the "# published" section. ![E2E_Debugging_Step_2](../../assets/E2E/E2E_Debugging_Step_2.png)
3. Here, you have crucial information to help you debug the problem.
@ -228,4 +228,4 @@ When an E2E test run fails within our CI, crucial information is output to Azure
2. Navigate to it's location within your cmd, and type:
- C:\pathToFolder\allure-report\E2E_win32_Dump> `allure open`
![E2E_Debugging_Step_3](../../../../assets/E2E/E2E_Debugging_Step_3.png)
![E2E_Debugging_Step_3](../../assets/E2E/E2E_Debugging_Step_3.png)

3
apps/E2E/just.config.js Normal file
Просмотреть файл

@ -0,0 +1,3 @@
const { preset } = require('@fluentui-react-native/scripts');
preset();

22
apps/E2E/metro.config.js Normal file
Просмотреть файл

@ -0,0 +1,22 @@
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/
const { defaultWatchFolders } = require('@rnx-kit/metro-config');
const { getDefaultConfig } = require('metro-config');
module.exports = (async () => {
const {
resolver: { sourceExts, assetExts },
} = await getDefaultConfig();
return {
watchFolders: defaultWatchFolders(),
resolver: {
assetExts: [...assetExts.filter((ext) => ext !== 'svg'), 'ttf', 'otf', 'png'],
sourceExts: [...sourceExts, 'svg'],
},
};
})();

74
apps/E2E/package.json Normal file
Просмотреть файл

@ -0,0 +1,74 @@
{
"name": "@fluentui-react-native/e2e-testing",
"version": "1.0.0",
"description": "Package containing E2E testing specs",
"license": "MIT",
"scripts": {
"build": "fluentui-scripts build",
"bundle": "react-native rnx-bundle --dev false",
"e2etest:ios": "wdio run wdio.conf.ios.js",
"e2etest:macos": "wdio run wdio.conf.macos.js",
"e2etest:windows": "rimraf errorShots/* reports/* && wdio run wdio.conf.windows.js"
},
"repository": {
"type": "git",
"url": "https://github.com/microsoft/fluentui-react-native.git",
"directory": "apps/E2E"
},
"devDependencies": {
"@rnx-kit/cli": "^0.14.8",
"@rnx-kit/metro-config": "^1.3.1",
"metro-config": "^0.67.0",
"metro-react-native-babel-preset": "^0.67.0",
"@fluentui-react-native/eslint-config-rules": "^0.1.1",
"@fluentui-react-native/scripts": "^0.1.1",
"ts-node": "^8.10.1",
"tsconfig-paths": "^3.9.0",
"typescript": "4.5.4",
"webdriverio": "7.23.0",
"@types/jasmine": "3.5.10",
"@types/react": "^17.0.2",
"@types/react-native": "^0.68.0",
"@wdio/appium-service": "7.23.0",
"@wdio/cli": "7.23.0",
"@wdio/jasmine-framework": "7.23.0",
"@wdio/local-runner": "7.23.0",
"@wdio/spec-reporter": "7.23.0",
"appium": "2.0.0-beta.41",
"appium-mac2-driver": "1.4.0",
"appium-windows-driver": "2.0.7",
"appium-xcuitest-driver": "4.11.1",
"@babel/core": "^7.8.0",
"@babel/runtime": "^7.8.0",
"@fluentui-react-native/focus-zone": "^0.11.7"
},
"rnx-kit": {
"reactNativeVersion": "0.68",
"kitType": "library",
"bundle": [
{
"id": "win32_specs",
"entryFile": "src/index.win32.ts",
"bundleOutput": "dist/win32_specs.bundle.js",
"sourcemapOutput": "dist/win32_specs.bundle.map",
"assetsDest": "dist",
"targets": [
"native"
],
"detectCyclicDependencies": {
"throwOnError": true
},
"detectDuplicateDependencies": {
"throwOnError": false
},
"typescriptValidation": false
}
],
"capabilities": [
"core",
"react",
"metro-config",
"babel-preset-react-native"
]
}
}

Просмотреть файл

@ -2,7 +2,7 @@ import {
HOMEPAGE_ACTIVITY_INDICATOR_BUTTON,
ACTIVITY_INDICATOR_TESTPAGE,
ACTIVITY_INDICATOR_TEST_COMPONENT,
} from '../../../TestComponents/ActivityIndicator/consts';
} from '../../../../fluent-tester/src/TestComponents/ActivityIndicator/consts';
import { BasePage, By } from '../../common/BasePage';
class ActivityIndicatorPageObject extends BasePage {

Просмотреть файл

@ -3,7 +3,7 @@ import {
HOMEPAGE_AVATAR_BUTTON,
AVATAR_TEST_COMPONENT,
AVATAR_SECONDARY_TEST_COMPONENT,
} from '../../../TestComponents/Avatar/consts';
} from '../../../../fluent-tester/src/TestComponents/Avatar/consts';
import { BasePage, By } from '../../common/BasePage';
export const enum AvatarComponentSelector {

Просмотреть файл

@ -10,7 +10,7 @@ import {
ACCESSIBILITY_ROLE_ATTRIBUTE,
ACCESSIBILITY_ROLE_IMAGE,
ACCESSIBILITY_ROLE_LINK,
} from '../../../TestComponents/Avatar/consts';
} from '../../../../fluent-tester/src/TestComponents/Avatar/consts';
// Before testing begins, allow up to 60 seconds for app to open
describe('Avatar Testing Initialization', function () {

Просмотреть файл

@ -3,7 +3,7 @@ import {
HOMEPAGE_BADGE_BUTTON,
BADGE_TEST_COMPONENT,
BADGE_SECONDARY_TEST_COMPONENT,
} from '../../../TestComponents/Badge/consts';
} from '../../../../fluent-tester/src/TestComponents/Badge/consts';
import { BasePage, By } from '../../common/BasePage';
export const enum BadgeComponentSelector {

Просмотреть файл

@ -4,7 +4,7 @@ import {
BUTTON_NO_A11Y_LABEL_COMPONENT_DEPRECATED,
HOMEPAGE_BUTTON_BUTTON,
BUTTON_ON_PRESS_DEPRECATED,
} from '../../../TestComponents/Button/consts';
} from '../../../../fluent-tester/src/TestComponents/Button/consts';
import { BasePage, By } from '../../common/BasePage';
/* This enum gives the spec file an EASY way to interact with SPECIFIC UI elements on the page.

Просмотреть файл

@ -2,7 +2,10 @@ import NavigateAppPage from '../../common/NavigateAppPage';
import ButtonPageObject, { ButtonSelector } from '../pages/ButtonPageObject';
import { ComponentSelector } from '../../common/BasePage';
import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, BUTTON_A11Y_ROLE, Keys } from '../../common/consts';
import { BUTTON_ACCESSIBILITY_LABEL_DEPRECATED, BUTTON_TEST_COMPONENT_LABEL_DEPRECATED } from '../../../TestComponents/Button/consts';
import {
BUTTON_ACCESSIBILITY_LABEL_DEPRECATED,
BUTTON_TEST_COMPONENT_LABEL_DEPRECATED,
} from '../../../../fluent-tester/src/TestComponents/Button/consts';
// Before testing begins, allow up to 60 seconds for app to open
describe('Button Testing Initialization', function () {

Просмотреть файл

@ -4,7 +4,7 @@ import {
BUTTON_NO_A11Y_LABEL_COMPONENT,
HOMEPAGE_BUTTON_BUTTON,
BUTTON_ON_PRESS,
} from '../../../TestComponents/Button/consts';
} from '../../../../fluent-tester/src/TestComponents/Button/consts';
import { BasePage, By } from '../../common/BasePage';
/* This enum gives the spec file an EASY way to interact with SPECIFIC UI elements on the page.

Просмотреть файл

@ -2,7 +2,7 @@ import NavigateAppPage from '../../common/NavigateAppPage';
import ButtonExperimentalPageObject, { ButtonSelector } from '../pages/ButtonExperimentalPageObject';
import { ComponentSelector } from '../../common/BasePage';
import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, BUTTON_A11Y_ROLE, Keys } from '../../common/consts';
import { BUTTON_ACCESSIBILITY_LABEL, BUTTON_TEST_COMPONENT_LABEL } from '../../../TestComponents/Button/consts';
import { BUTTON_ACCESSIBILITY_LABEL, BUTTON_TEST_COMPONENT_LABEL } from '../../../../fluent-tester/src/TestComponents/Button/consts';
// Before testing begins, allow up to 60 seconds for app to open
describe('Experimental Button Testing Initialization', function () {

Просмотреть файл

@ -3,7 +3,7 @@ import {
CALLOUT_TEST_COMPONENT,
HOMEPAGE_CALLOUT_BUTTON,
BUTTON_TO_OPEN_CALLOUT,
} from '../../../TestComponents/Callout/consts';
} from '../../../../fluent-tester/src/TestComponents/Callout/consts';
import { BasePage, By } from '../../common/BasePage';
class CalloutPageObject extends BasePage {

Просмотреть файл

@ -1,6 +1,6 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import CalloutPageObject from '../pages/CalloutPageObject.win';
import { CALLOUT_ACCESSIBILITY_LABEL } from '../../../TestComponents/Callout/consts';
import { CALLOUT_ACCESSIBILITY_LABEL } from '../../../../fluent-tester/src/TestComponents/Callout/consts';
import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, CALLOUT_A11Y_ROLE } from '../../common/consts';
import { ComponentSelector } from '../../common/BasePage';

Просмотреть файл

@ -4,7 +4,7 @@ import {
CHECKBOX_NO_A11Y_LABEL_COMPONENT,
HOMEPAGE_CHECKBOX_BUTTON,
CHECKBOX_ON_PRESS,
} from '../../../TestComponents/Checkbox/consts';
} from '../../../../fluent-tester/src/TestComponents/Checkbox/consts';
import { BasePage, By } from '../../common/BasePage';
/* This enum gives the spec file an EASY way to interact with SPECIFIC UI elements on the page.

Просмотреть файл

@ -1,7 +1,7 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import CheckboxPageObject, { CheckboxSelector } from '../pages/CheckboxPageObject';
import { ComponentSelector } from '../../common/BasePage';
import { CHECKBOX_TEST_COMPONENT_LABEL, CHECKBOX_ACCESSIBILITY_LABEL } from '../../../TestComponents/Checkbox/consts';
import { CHECKBOX_TEST_COMPONENT_LABEL, CHECKBOX_ACCESSIBILITY_LABEL } from '../../../../fluent-tester/src/TestComponents/Checkbox/consts';
import { CHECKBOX_A11Y_ROLE, PAGE_TIMEOUT, BOOT_APP_TIMEOUT, Keys } from '../../common/consts';
describe('Checkbox Testing Initialization', () => {

Просмотреть файл

@ -1,7 +1,7 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import CheckboxPageObject from '../pages/CheckboxPageObject';
import { ComponentSelector } from '../../common/BasePage';
import { CHECKBOX_TEST_COMPONENT_LABEL, CHECKBOX_ACCESSIBILITY_LABEL } from '../../../TestComponents/Checkbox/consts';
import { CHECKBOX_TEST_COMPONENT_LABEL, CHECKBOX_ACCESSIBILITY_LABEL } from '../../../../fluent-tester/src/TestComponents/Checkbox/consts';
import { CHECKBOX_A11Y_ROLE, PAGE_TIMEOUT, BOOT_APP_TIMEOUT } from '../../common/consts';
describe('Checkbox Testing Initialization', () => {

Просмотреть файл

@ -4,7 +4,7 @@ import {
EXPERIMENTAL_CHECKBOX_TEST_COMPONENT,
EXPERIMENTAL_CHECKBOX_NO_A11Y_LABEL_COMPONENT,
EXPERIMENTAL_CHECKBOX_ON_PRESS,
} from '../../../TestComponents/CheckboxExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/CheckboxExperimental/consts';
import { BasePage, By } from '../../common/BasePage';
/* This enum gives the spec file an EASY way to interact with SPECIFIC UI elements on the page.

Просмотреть файл

@ -4,7 +4,7 @@ import { ComponentSelector } from '../../common/BasePage';
import {
EXPERIMENTAL_CHECKBOX_TEST_COMPONENT_LABEL,
EXPERIMENTAL_CHECKBOX_ACCESSIBILITY_LABEL,
} from '../../../TestComponents/CheckboxExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/CheckboxExperimental/consts';
import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, CHECKBOX_A11Y_ROLE, Keys } from '../../common/consts';
describe('Experimental Checkbox Testing Initialization', () => {

Просмотреть файл

@ -3,7 +3,7 @@ import {
CONTEXTUALMENU_TEST_COMPONENT,
HOMEPAGE_CONTEXTUALMENU_BUTTON,
CONTEXTUALMENUITEM_TEST_COMPONENT,
} from '../../../TestComponents/ContextualMenu/consts';
} from '../../../../fluent-tester/src/TestComponents/ContextualMenu/consts';
import { BasePage, By } from '../../common/BasePage';
/* This enum gives the spec file an EASY way to interact with SPECIFIC UI elements on the page.

Просмотреть файл

@ -1,4 +1,7 @@
import { HOMEPAGE_CORNERRADIUS_TESTPAGE, HOMEPAGE_CORNERRADIUS_BUTTON } from '../../../TestComponents/CornerRadius/consts';
import {
HOMEPAGE_CORNERRADIUS_TESTPAGE,
HOMEPAGE_CORNERRADIUS_BUTTON,
} from '../../../../fluent-tester/src/TestComponents/CornerRadius/consts';
import { BasePage, By } from '../../common/BasePage';
class CornerRadiusTokensPageObject extends BasePage {

Просмотреть файл

@ -2,7 +2,7 @@ import {
FOCUSTRAPZONE_TESTPAGE,
FOCUSTRAPZONE_TEST_COMPONENT,
HOMEPAGE_FOCUSTRAPZONE_BUTTON,
} from '../../../TestComponents/FocusTrapZone/consts';
} from '../../../../fluent-tester/src/TestComponents/FocusTrapZone/consts';
import { BasePage, By } from '../../common/BasePage';
class FocusTrapZonePageObject extends BasePage {

Просмотреть файл

@ -1,4 +1,4 @@
import { FocusZoneDirection } from '@fluentui/react-native';
import { FocusZoneDirection } from '@fluentui-react-native/focus-zone';
import { Attribute, AttributeValue, Keys } from '../../common/consts';
import {
FOCUSZONE_CIRCLE_NAV_SWITCH,
@ -13,7 +13,7 @@ import {
FOCUSZONE_TEST_COMPONENT,
FOCUSZONE_TWO_DIM_SWITCH,
HOMEPAGE_FOCUSZONE_BUTTON,
} from '../../../TestComponents/FocusZone/consts';
} from '../../../../fluent-tester/src/TestComponents/FocusZone/consts';
import { BasePage, By } from '../../common/BasePage';
export const enum GridFocusZoneOption {

Просмотреть файл

@ -3,7 +3,7 @@ import {
ICON_TEST_COMPONENT,
HOMEPAGE_ICON_BUTTON,
ICON_NO_A11Y_LABEL_COMPONENT,
} from '../../../TestComponents/Icon/consts';
} from '../../../../fluent-tester/src/TestComponents/Icon/consts';
import { BasePage, By } from '../../common/BasePage';
class IconPageObject extends BasePage {

Просмотреть файл

@ -3,7 +3,7 @@ import {
LINK_TEST_COMPONENT,
HOMEPAGE_LINK_BUTTON,
LINK_NO_A11Y_LABEL_COMPONENT,
} from '../../../TestComponents/Link/consts';
} from '../../../../fluent-tester/src/TestComponents/Link/consts';
import { BasePage, By } from '../../common/BasePage';
class LinkPageObject extends BasePage {

Просмотреть файл

@ -1,7 +1,7 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import LinkPageObject from '../pages/LinkPageObject';
import { ComponentSelector } from '../../common/BasePage';
import { LINK_ACCESSIBILITY_LABEL } from '../../../TestComponents/Link/consts';
import { LINK_ACCESSIBILITY_LABEL } from '../../../../fluent-tester/src/TestComponents/Link/consts';
import { LINK_A11Y_ROLE, PAGE_TIMEOUT, BOOT_APP_TIMEOUT } from '../../common/consts';
// Before testing begins, allow up to 60 seconds for app to open

Просмотреть файл

@ -3,7 +3,7 @@ import {
EXPERIMENTAL_LINK_TEST_COMPONENT,
HOMEPAGE_EXPERIMENTAL_LINK_BUTTON,
EXPERIMENTAL_LINK_NO_A11Y_LABEL_COMPONENT,
} from '../../../TestComponents/LinkExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/LinkExperimental/consts';
import { BasePage, By } from '../../common/BasePage';
class ExperimentalLinkPageObject extends BasePage {

Просмотреть файл

@ -1,7 +1,7 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import ExperimentalLinkPageObject from '../pages/LinkPageObject';
import { ComponentSelector } from '../../common/BasePage';
import { EXPERIMENTAL_LINK_ACCESSIBILITY_LABEL } from '../../../TestComponents/LinkExperimental/consts';
import { EXPERIMENTAL_LINK_ACCESSIBILITY_LABEL } from '../../../../fluent-tester/src/TestComponents/LinkExperimental/consts';
import { LINK_A11Y_ROLE, PAGE_TIMEOUT, BOOT_APP_TIMEOUT } from '../../common/consts';
// Before testing begins, allow up to 60 seconds for app to open

Просмотреть файл

@ -6,7 +6,7 @@ import {
MENUITEM_TEST_COMPONENT,
MENUPOPOVER_TEST_COMPONENT,
MENU_DEFOCUS_BUTTON,
} from '../../../TestComponents/Menu/consts';
} from '../../../../fluent-tester/src/TestComponents/Menu/consts';
import { BasePage, By } from '../../common/BasePage';
import { Keys, ExpandCollapseState, Attribute } from '../../common/consts';

Просмотреть файл

@ -1,7 +1,7 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import MenuPageObject, { MenuComponentSelector } from '../pages/MenuPageObject';
import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, Keys, MENUITEM_A11Y_ROLE, ExpandCollapseState } from '../../common/consts';
import { MENUITEM_TEST_LABEL } from '../../../TestComponents/Menu/consts';
import { MENUITEM_TEST_LABEL } from '../../../../fluent-tester/src/TestComponents/Menu/consts';
// Before testing begins, allow up to 60 seconds for app to open
describe('Menu Testing Initialization', function () {

Просмотреть файл

@ -4,7 +4,7 @@ import {
HOMEPAGE_MENUBUTTON_BUTTON,
MENU_BUTTON_NO_A11Y_LABEL_COMPONENT,
MENU_ITEM_1_COMPONENT,
} from '../../../TestComponents/MenuButton/consts';
} from '../../../../fluent-tester/src/TestComponents/MenuButton/consts';
import { BasePage, By } from '../../common/BasePage';
export const enum MenuButtonSelector {

Просмотреть файл

@ -1,7 +1,10 @@
import NavigateAppPage from '../../common/NavigateAppPage';
import MenuButtonPageObject, { MenuButtonSelector } from '../pages/MenuButtonPageObject.win';
import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, MENUBUTTON_A11Y_ROLE, Keys } from '../../common/consts';
import { MENU_BUTTON_ACCESSIBILITY_LABEL, MENU_BUTTON_TEST_COMPONENT_LABEL } from '../../../TestComponents/MenuButton/consts';
import {
MENU_BUTTON_ACCESSIBILITY_LABEL,
MENU_BUTTON_TEST_COMPONENT_LABEL,
} from '../../../../fluent-tester/src/TestComponents/MenuButton/consts';
import { ComponentSelector } from '../../common/BasePage';
// Before testing begins, allow up to 60 seconds for app to open

Просмотреть файл

@ -3,7 +3,7 @@ import {
EXPERIMENTAL_MENU_BUTTON_TEST_COMPONENT,
HOMEPAGE_EXPERIMENTAL_MENU_BUTTON,
EXPERIMENTAL_MENU_BUTTON_NO_A11Y_LABEL_COMPONENT,
} from '../../../TestComponents/MenuButtonExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/MenuButtonExperimental/consts';
import { BasePage, By } from '../../common/BasePage';
class ExperimentalMenuButtonPageObject extends BasePage {

Просмотреть файл

@ -4,7 +4,7 @@ import { PAGE_TIMEOUT, BOOT_APP_TIMEOUT, MENUBUTTON_A11Y_ROLE } from '../../comm
import {
EXPERIMENTAL_MENU_BUTTON_ACCESSIBILITY_LABEL,
EXPERIMENTAL_MENU_BUTTON_TEST_COMPONENT_LABEL,
} from '../../../TestComponents/MenuButtonExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/MenuButtonExperimental/consts';
import { ComponentSelector } from '../../common/BasePage';
// Before testing begins, allow up to 60 seconds for app to open

Просмотреть файл

@ -1,4 +1,8 @@
import { PERSONA_TESTPAGE, PERSONA_TEST_COMPONENT, HOMEPAGE_PERSONA_BUTTON } from '../../../TestComponents/Persona/consts';
import {
PERSONA_TESTPAGE,
PERSONA_TEST_COMPONENT,
HOMEPAGE_PERSONA_BUTTON,
} from '../../../../fluent-tester/src/TestComponents/Persona/consts';
import { BasePage, By } from '../../common/BasePage';
class PersonaPageObject extends BasePage {

Просмотреть файл

@ -1,4 +1,8 @@
import { PERSONACOIN_TESTPAGE, PERSONACOIN_TEST_COMPONENT, HOMEPAGE_PERSONACOIN_BUTTON } from '../../../TestComponents/PersonaCoin/consts';
import {
PERSONACOIN_TESTPAGE,
PERSONACOIN_TEST_COMPONENT,
HOMEPAGE_PERSONACOIN_BUTTON,
} from '../../../../fluent-tester/src/TestComponents/PersonaCoin/consts';
import { BasePage, By } from '../../common/BasePage';
class PersonaCoinPageObject extends BasePage {

Просмотреть файл

@ -1,4 +1,8 @@
import { PRESSABLE_TESTPAGE, PRESSABLE_TEST_COMPONENT, HOMEPAGE_PRESSABLE_BUTTON } from '../../../TestComponents/Pressable/consts';
import {
PRESSABLE_TESTPAGE,
PRESSABLE_TEST_COMPONENT,
HOMEPAGE_PRESSABLE_BUTTON,
} from '../../../../fluent-tester/src/TestComponents/Pressable/consts';
import { BasePage, By } from '../../common/BasePage';
class PressablePageObject extends BasePage {

Просмотреть файл

@ -7,7 +7,7 @@ import {
SECOND_RADIO_BUTTON,
THIRD_RADIO_BUTTON,
FOURTH_RADIO_BUTTON,
} from '../../../TestComponents/RadioGroup/consts';
} from '../../../../fluent-tester/src/TestComponents/RadioGroup/consts';
import { BasePage, By } from '../../common/BasePage';
/* This enum gives the spec file an EASY way to interact with SPECIFIC UI elements on the page.

Просмотреть файл

@ -7,7 +7,7 @@ import {
RADIOGROUP_TEST_COMPONENT_LABEL,
FIRST_RADIO_BUTTON_ACCESSIBILITY_LABEL,
SECOND_RADIO_BUTTON_LABEL,
} from '../../../TestComponents/RadioGroup/consts';
} from '../../../../fluent-tester/src/TestComponents/RadioGroup/consts';
// Before testing begins, allow up to 60 seconds for app to open
describe('RadioGroup/RadioButton Testing Initialization', function () {

Просмотреть файл

@ -8,7 +8,7 @@ import {
THIRD_RADIO,
FOURTH_RADIO,
FIFTH_RADIO,
} from '../../../TestComponents/RadioGroupExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/RadioGroupExperimental/consts';
import { BasePage, By } from '../../common/BasePage';
import { Attribute, AttributeValue } from '../../common/consts';

Просмотреть файл

@ -7,7 +7,7 @@ import {
RADIOGROUP_TEST_COMPONENT_LABEL,
FIRST_RADIO_ACCESSIBILITY_LABEL,
SECOND_RADIO_LABEL,
} from '../../../TestComponents/RadioGroupExperimental/consts';
} from '../../../../fluent-tester/src/TestComponents/RadioGroupExperimental/consts';
// Before testing begins, allow up to 60 seconds for app to open
describe('RadioGroup/Radio Testing Initialization', function () {

Просмотреть файл

@ -1,4 +1,8 @@
import { SEPARATOR_TESTPAGE, SEPARATOR_TEST_COMPONENT, HOMEPAGE_SEPARATOR_BUTTON } from '../../../TestComponents/Separator/consts';
import {
SEPARATOR_TESTPAGE,
SEPARATOR_TEST_COMPONENT,
HOMEPAGE_SEPARATOR_BUTTON,
} from '../../../../fluent-tester/src/TestComponents/Separator/consts';
import { BasePage, By } from '../../common/BasePage';
class SeparatorPageObject extends BasePage {

Просмотреть файл

@ -1,4 +1,4 @@
import { SHADOW_TESTPAGE, HOMEPAGE_SHADOW_BUTTON } from '../../../TestComponents/Shadow/consts';
import { SHADOW_TESTPAGE, HOMEPAGE_SHADOW_BUTTON } from '../../../../fluent-tester/src/TestComponents/Shadow/consts';
import { BasePage, By } from '../../common/BasePage';
class ShadowTestPage extends BasePage {

Просмотреть файл

@ -1,4 +1,8 @@
import { HOMEPAGE_SHIMMER_BUTTON, SHIMMER_TESTPAGE, SHIMMER_TEST_COMPONENT } from '../../../TestComponents/Shimmer/consts';
import {
HOMEPAGE_SHIMMER_BUTTON,
SHIMMER_TESTPAGE,
SHIMMER_TEST_COMPONENT,
} from '../../../../fluent-tester/src/TestComponents/Shimmer/consts';
import { BasePage, By } from '../../common/BasePage';
class ShimmerPageObject extends BasePage {

Просмотреть файл

@ -1,4 +1,4 @@
import { STROKEWIDTH_TESTPAGE, HOMEPAGE_STROKEWIDTH_BUTTON } from '../../../TestComponents/StrokeWidth/consts';
import { STROKEWIDTH_TESTPAGE, HOMEPAGE_STROKEWIDTH_BUTTON } from '../../../../fluent-tester/src/TestComponents/StrokeWidth/consts';
import { BasePage, By } from '../../common/BasePage';
class StrokeWidthTokensPageObject extends BasePage {

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше