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

Adding TestEngine.PlaywrightScript() #336

Update TestEngine.PlaywrightScript.md

bebfbad
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Closed

Adding TestEngine.PlaywrightScript() #336

Update TestEngine.PlaywrightScript.md
bebfbad
Select commit
Loading
Failed to load commit list.
GitHub Actions / DotNet Tests succeeded Jun 7, 2024 in 0s

511 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_08.trx 355✅ 22s
src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_11.trx 4✅ 6s
src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_14.trx 16✅ 8s
src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_19.trx 128✅ 48s
src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_31.trx 3✅ 3s
src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_33_06.trx 5✅ 2s

✅ src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_08.trx

355 tests were completed in 22s with 355 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Microsoft.PowerApps.TestEngine.Tests.Config.SingleTestInstanceStateTests 10✅ 4ms
Microsoft.PowerApps.TestEngine.Tests.Config.TestStateTests 46✅ 241ms
Microsoft.PowerApps.TestEngine.Tests.Config.YamlTestConfigParserTests 10✅ 157ms
Microsoft.PowerApps.TestEngine.Tests.ConsoleOutputTests 14✅ 21ms
Microsoft.PowerApps.TestEngine.Tests.Helpers.ExceptionHandlingHelperTest 2✅ 122ms
Microsoft.PowerApps.TestEngine.Tests.Helpers.LoggingHelpersTest 5✅ 131ms
Microsoft.PowerApps.TestEngine.Tests.Helpers.PollingHelpersTests 6✅ 6s
Microsoft.PowerApps.TestEngine.Tests.Modules.TestEngineExtensionCheckerTests 24✅ 10s
Microsoft.PowerApps.TestEngine.Tests.Modules.TestEngineModuleMEFLoaderTests 8✅ 144ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlRecordValueTests 3✅ 43ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableSourceTests 1✅ 4ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableValueTests 1✅ 49ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.TypeMappingTests 6✅ 9ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertFunctionTests 2✅ 15ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertWithoutMessageFunctionTests 2✅ 10ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.ScreenshotFunctionTests 9✅ 47ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SelectFunctionTests 9✅ 187ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SetPropertyFunctionTests 8✅ 72ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.WaitFunctionTests 25✅ 12s
Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxEngineTests 23✅ 19s
Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxHelperTests 31✅ 372ms
Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests 11✅ 43ms
Microsoft.PowerApps.TestEngine.Tests.Reporting.TestReporterTests 16✅ 175ms
Microsoft.PowerApps.TestEngine.Tests.SingleTestRunnerTests 18✅ 896ms
Microsoft.PowerApps.TestEngine.Tests.System.FileSystemTests 9✅ 27ms
Microsoft.PowerApps.TestEngine.Tests.TestEngineTests 19✅ 368ms
Microsoft.PowerApps.TestEngine.Tests.TestInfra.PlaywrightTestInfraFunctionTests 37✅ 8s

✅ Microsoft.PowerApps.TestEngine.Tests.Config.SingleTestInstanceStateTests

✅ SetBrowserConfigThrowsOnNullInput
✅ SetLoggerThrowsOnNullInput
✅ SetTestDefinitionThrowsOnNullInput
✅ SetTestIdThrowsOnInvalidInputTest(invalidInput: "")
✅ SetTestIdThrowsOnInvalidInputTest(invalidInput: null)
✅ SetTestResultsDirectoryThrowsOnInvalidInputTest(invalidInput: "")
✅ SetTestResultsDirectoryThrowsOnInvalidInputTest(invalidInput: null)
✅ SetTestRunIdThrowsOnInvalidInputTest(invalidInput: "")
✅ SetTestRunIdThrowsOnInvalidInputTest(invalidInput: null)
✅ SingleTestInstanceStateSuccessTest

✅ Microsoft.PowerApps.TestEngine.Tests.Config.TestStateTests

✅ ParseAndSetTestStateDoesNotThrowWhenEitherOfAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: "appLogicalName", appId: null)
✅ ParseAndSetTestStateDoesNotThrowWhenEitherOfAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: null, appId: "appId")
✅ ParseAndSetTestStateThrowsOnInvalidScreenConfigInBrowserConfigurationInTestSettings(screenWidth: 800, screenHeight: null)
✅ ParseAndSetTestStateThrowsOnInvalidScreenConfigInBrowserConfigurationInTestSettings(screenWidth: null, screenHeight: 800)
✅ ParseAndSetTestStateThrowsOnInvalidTestConfigFile(testConfigPath: "")
✅ ParseAndSetTestStateThrowsOnInvalidTestConfigFile(testConfigPath: null)
✅ ParseAndSetTestStateThrowsOnMulitpleMissingValues
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: "", appId: "")
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: "", appId: null)
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: null, appId: "")
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: null, appId: null)
✅ ParseAndSetTestStateThrowsOnNoBrowserConfigurationInTestSettings
✅ ParseAndSetTestStateThrowsOnNoBrowserInBrowserConfigurationInTestSettings(browser: "")
✅ ParseAndSetTestStateThrowsOnNoBrowserInBrowserConfigurationInTestSettings(browser: null)
✅ ParseAndSetTestStateThrowsOnNoEmailKeyInUserConfigurationInEnvironmentVariables(emailKey: "")
✅ ParseAndSetTestStateThrowsOnNoEmailKeyInUserConfigurationInEnvironmentVariables(emailKey: null)
✅ ParseAndSetTestStateThrowsOnNoEnvironmentVariables
✅ ParseAndSetTestStateThrowsOnNoNameInTestSuiteDefinition(testName: "")
✅ ParseAndSetTestStateThrowsOnNoNameInTestSuiteDefinition(testName: null)
✅ ParseAndSetTestStateThrowsOnNoPasswordKeyInUserConfigurationInEnvironmentVariables(passwordKey: "")
✅ ParseAndSetTestStateThrowsOnNoPasswordKeyInUserConfigurationInEnvironmentVariables(passwordKey: null)
✅ ParseAndSetTestStateThrowsOnNoPersonaInTestSuiteDefinition(persona: "")
✅ ParseAndSetTestStateThrowsOnNoPersonaInTestSuiteDefinition(persona: null)
✅ ParseAndSetTestStateThrowsOnNoPersonaNameInUserConfigurationInEnvironmentVariables(personaName: "")
✅ ParseAndSetTestStateThrowsOnNoPersonaNameInUserConfigurationInEnvironmentVariables(personaName: null)
✅ ParseAndSetTestStateThrowsOnNoTestCaseInTestSuiteDefinition
✅ ParseAndSetTestStateThrowsOnNoTestCaseNameInTestCase(testCaseName: "")
✅ ParseAndSetTestStateThrowsOnNoTestCaseNameInTestCase(testCaseName: null)
✅ ParseAndSetTestStateThrowsOnNoTestSettings
✅ ParseAndSetTestStateThrowsOnNoTestStepsInTestCase(testSteps: "")
✅ ParseAndSetTestStateThrowsOnNoTestStepsInTestCase(testSteps: null)
✅ ParseAndSetTestStateThrowsOnNoTestSuiteDefinition
✅ ParseAndSetTestStateThrowsOnNoUserConfigurationInEnvironmentVariables
✅ ParseAndSetTestStateThrowsOnNullBrowserConfigurationInTestSettings
✅ ParseAndSetTestStateThrowsOnNullUserConfigurationInEnvironmentVariables
✅ ParseAndSetTestStateThrowsOnTestSuiteDefinitionUserNotDefined
✅ SetDomainThrowsOnNullInput(domain: "")
✅ SetDomainThrowsOnNullInput(domain: null)
✅ SetEnvironmentThrowsOnNullInput(environment: "")
✅ SetEnvironmentThrowsOnNullInput(environment: null)
✅ SetOutputDirectoryThrowsOnNullInput(outputDirectory: "")
✅ SetOutputDirectoryThrowsOnNullInput(outputDirectory: null)
✅ SetTenantThrowsOnNullInput(tenant: "")
✅ SetTenantThrowsOnNullInput(tenant: null)
✅ TestStateSuccessOnFilePathTest
✅ TestStateSuccessTest

✅ Microsoft.PowerApps.TestEngine.Tests.Config.YamlTestConfigParserTests

✅ YamlTestConfigParserParseEnvironmentVariablesTest
✅ YamlTestConfigParserParseTestPlanWithAppIDTest
✅ YamlTestConfigParserParseTestPlanWithAppLogicalNameTest
✅ YamlTestConfigParserParseTestPlanWithLocaleTest
✅ YamlTestConfigParserParseTestSettingsTest
✅ YamlTestConfigParserParseTestSettingsWithLocaleTest
✅ YamlTestConfigParserThrowsOnInvalidFilePath
✅ YamlTestConfigParserThrowsOnInvalidYAMLFormat
✅ YamlTestConfigParserThrowsOnNullArguments(filePath: "")
✅ YamlTestConfigParserThrowsOnNullArguments(filePath: null)

✅ Microsoft.PowerApps.TestEngine.Tests.ConsoleOutputTests

✅ TestEncounteredException
✅ TestEncounteredUserAppException
✅ TestEncounteredUserInputException(exceptionName: "UserInputExceptionInvalidFilePath", expectedMessage: "   Invalid file path. For more details, check the "...)
✅ TestEncounteredUserInputException(exceptionName: "UserInputExceptionInvalidOutputPath", expectedMessage: "   [Critical Error]: The output directory provided"...)
✅ TestEncounteredUserInputException(exceptionName: "UserInputExceptionInvalidTestSettings", expectedMessage: "   Invalid test settings specified in testconfig. "...)
✅ TestEncounteredUserInputException(exceptionName: "UserInputExceptionLoginCredential", expectedMessage: "   Invalid login credential(s). For more details, "...)
✅ TestEncounteredUserInputException(exceptionName: "UserInputExceptionTestConfig", expectedMessage: "   Invalid test config. For more details, check th"...)
✅ TestEncounteredUserInputException(exceptionName: "UserInputExceptionYAMLFormat", expectedMessage: "   Invalid YAML format. For more details, check th"...)
✅ TestMultipleBrowserRuns
✅ TestSuiteBegin
✅ TestSuiteEnd
✅ TestTestCaseBegin
✅ TestTestCaseEndFailed
✅ TestTestCaseEndPassed

✅ Microsoft.PowerApps.TestEngine.Tests.Helpers.ExceptionHandlingHelperTest

✅ CheckIfOutDatedPublishedAppFalse
✅ CheckIfOutDatedPublishedAppTrue

✅ Microsoft.PowerApps.TestEngine.Tests.Helpers.LoggingHelpersTest

✅ DebugInfoNullSessionTest
✅ DebugInfoReturnDetailsTest
✅ DebugInfoThrowsTest
✅ DebugInfoWithNullValuesTest
✅ DebugInfoWithSessionTest

✅ Microsoft.PowerApps.TestEngine.Tests.Helpers.PollingHelpersTests

✅ PollingAsyncSucceedsTest
✅ PollingAsyncThrowsOnInvalidArgumentsTest
✅ PollingAsyncTimeoutTest
✅ PollingSucceedsTest
✅ PollingThrowsOnInvalidArgumentsTest
✅ PollingTimeoutTest

✅ Microsoft.PowerApps.TestEngine.Tests.Modules.TestEngineExtensionCheckerTests

✅ IsValid(usingStatements: "", script: "} private int _foo; public int Foo { set { IPage p"..., useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "", script: "} public string Foo { get { IPage page = null; pag"..., useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "", script: "IPage page = null; page.EvaluateAsync(\"alert()\")"..., useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "", script: "System.Console.WriteLine(\"Hello World\");", useTemplate: True, allow: "", deny: "", expected: True)
✅ IsValid(usingStatements: "", script: "System.Console.WriteLine(\"Hello World\");", useTemplate: True, allow: "", deny: "System.", expected: False)
✅ IsValid(usingStatements: "using System; public class Other { private Action "..., script: "", useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "using System; public class Other { private Action "..., script: "", useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "using System; public class Other { private static "..., script: "", useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "using System; public class Other { private static "..., script: "", useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "using System; public class Other { private string "..., script: "", useTemplate: True, allow: "", deny: "System.String::Format", expected: False)
✅ IsValid(usingStatements: "using System; public class Other { static Other() "..., script: "", useTemplate: True, allow: "", deny: "Microsoft.Playwright.IPage::EvaluateAsync", expected: False)
✅ IsValid(usingStatements: "using System;", script: "Console.WriteLine(\"A\");", useTemplate: True, allow: "System.Console::WriteLine(\"A\")", deny: "System.Console::WriteLine", expected: True)
✅ IsValid(usingStatements: "using System;", script: "Console.WriteLine(\"B\");", useTemplate: True, allow: "System.Console::WriteLine(\"A\")", deny: "System.Console::WriteLine", expected: False)
✅ IsValid(usingStatements: "using System;", script: "Console.WriteLine(\"Hello World\");", useTemplate: True, allow: "System.Console::WriteLine", deny: "System.Console", expected: True)
✅ IsValid(usingStatements: "using System.IO;", script: "File.Exists(\"c:\\\\test.txt\");", useTemplate: True, allow: "", deny: "System.IO", expected: False)
✅ Verify(checkCertificates: False, sign: False, allowUntrustedRoot: False, signWith: "", trustedSource: "", start: 0, end: 1, expectedResult: True)
✅ Verify(checkCertificates: False, sign: True, allowUntrustedRoot: False, signWith: "CN=Test", trustedSource: "CN=Test", start: 0, end: 1, expectedResult: True)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: False, signWith: "CN=Test", trustedSource: "CN=Test", start: -1, end: 1, expectedResult: False)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: True, signWith: "CN=Test, O=Match, S=WA, C=US", trustedSource: "CN=Test, O=Match, S=WA, C=XX", start: -1, end: 1, expectedResult: False)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: True, signWith: "CN=Test, O=Match, S=WA", trustedSource: "CN=Test, O=Match, S=XX", start: -1, end: 1, expectedResult: False)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: True, signWith: "CN=Test, O=Match", trustedSource: "CN=Test, O=Match", start: -1, end: 1, expectedResult: True)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: True, signWith: "CN=Test, O=Match", trustedSource: "CN=Test, O=Other", start: -1, end: 1, expectedResult: False)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: True, signWith: "CN=Test", trustedSource: "CN=Test", start: -1, end: 1, expectedResult: True)
✅ Verify(checkCertificates: True, sign: True, allowUntrustedRoot: True, signWith: "CN=Test", trustedSource: "CN=Test", start: -100, end: -1, expectedResult: False)

✅ Microsoft.PowerApps.TestEngine.Tests.Modules.TestEngineModuleMEFLoaderTests

✅ DisabledEmptyCatalog
✅ ModuleMatch(checkAssemblies: False, checkResult: False, allow: "", deny: "", files: "", expected: "AssemblyCatalog")
✅ ModuleMatch(checkAssemblies: False, checkResult: False, allow: "*", deny: "foo", files: "testengine.module.foo.dll", expected: "AssemblyCatalog")
✅ ModuleMatch(checkAssemblies: False, checkResult: False, allow: "*", deny: "foo*", files: "testengine.module.foo1.dll", expected: "AssemblyCatalog")
✅ ModuleMatch(checkAssemblies: False, checkResult: False, allow: "foo", deny: "*", files: "testengine.module.foo.dll", expected: "AssemblyCatalog")
✅ ModuleMatch(checkAssemblies: False, checkResult: False, allow: "Foo", deny: "*", files: "testengine.module.foo.dll", expected: "AssemblyCatalog")
✅ ModuleMatch(checkAssemblies: True, checkResult: False, allow: "*", deny: "", files: "testengine.module.foo.dll", expected: "AssemblyCatalog")
✅ ModuleMatch(checkAssemblies: True, checkResult: True, allow: "*", deny: "", files: "testengine.module.foo.dll", expected: "AssemblyCatalog,AssemblyCatalog")

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlRecordValueTests

✅ ComponentsControlRecordValueTest
✅ GalleryControlRecordValueTest
✅ SimpleControlRecordValueTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableSourceTests

✅ TableSourceTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableValueTests

✅ TableTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.TypeMappingTests

✅ GetComplexTypeWithMissingSubType
✅ GetRecordTypeTest
✅ GetTableTypeTest
✅ GetTypeThatWasAddedTest
✅ TryGetTypeFailsForNonExistentTypeTest
✅ TypeMappingSetsUpDefaultTypes

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertFunctionTests

✅ AssertFunctionSucceedsOnFalseTest
✅ AssertFunctionSucceedsOnTrueTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertWithoutMessageFunctionTests

✅ AssertFunctionSucceedsOnFalseTest
✅ AssertFunctionSucceedsOnTrueTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.ScreenshotFunctionTests

✅ ScreenshotFunctionTest(screenshotName: "screenshot.jpeg")
✅ ScreenshotFunctionTest(screenshotName: "screenshot.jpg")
✅ ScreenshotFunctionTest(screenshotName: "screenshot.png")
✅ ScreenshotFunctionThrowsOnInvalidResultDirectoryTest
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "")
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "C:\\folder")
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "test.img")
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "test.txt")
✅ ScreenshotFunctionThrowsOnNonRelativeFilePathTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SelectFunctionTests

✅ SelectFunctionThrowsOnNonPowerAppsRecordValuetTest
✅ SelectFunctionThrowsOnNullObjectTest
✅ SelectGalleryTest
✅ SelectOneParamFunctionFailsTest
✅ SelectOneParamFunctionTest
✅ SelectThreeParamFunctionFailsTest
✅ SelectThreeParamFunctionTest
✅ SelectTwoParamFunctionFailsTest
✅ SelectTwoParamFunctionTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SetPropertyFunctionTests

✅ SetPropertyBooleanFunctionTest
✅ SetPropertyDateFunctionTest
✅ SetPropertyFunctionFailsTest
✅ SetPropertyFunctionThrowsOnNonPowerAppsRecordValueTest
✅ SetPropertyNumberFunctionTest
✅ SetPropertyRecordFunctionTest
✅ SetPropertyStringFunctionTest
✅ SetPropertyTableFunctionTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.WaitFunctionTests

✅ WaitFunctionBooleanSucceedsTest
✅ WaitFunctionBooleanThrowsOnInvalidArgumentsTest
✅ WaitFunctionBooleanTimeoutTest
✅ WaitFunctionBooleanWaitsForValueToUpdateTest
✅ WaitFunctionDate_DateTimeValueSucceedsTest
✅ WaitFunctionDate_DateValueSucceedsTest
✅ WaitFunctionDateThrowsOnInvalidArgumentsTest
✅ WaitFunctionDateTime_DateTimeValueSucceedsTest
✅ WaitFunctionDateTime_DateValueSucceedsTest
✅ WaitFunctionDateTimeoutTest
✅ WaitFunctionDateTimeTimeoutTest
✅ WaitFunctionDateTimeWaitsForValueToUpdateTest
✅ WaitFunctionDateWaitsForValueToUpdateTest
✅ WaitFunctionImproperValueForBooleanTest
✅ WaitFunctionImproperValueForDateTest
✅ WaitFunctionImproperValueForNumberTest
✅ WaitFunctionImproperValueForStringTest
✅ WaitFunctionNumberSucceedsTest
✅ WaitFunctionNumberThrowsOnInvalidArgumentsTest
✅ WaitFunctionNumberTimeoutTest
✅ WaitFunctionNumberWaitsForValueToUpdateTest
✅ WaitFunctionStringSucceedsTest
✅ WaitFunctionStringThrowsOnInvalidArgumentsTest
✅ WaitFunctionStringTimeoutTest
✅ WaitFunctionStringWaitsForValueToUpdateTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxEngineTests

✅ ExecuteAssertFunctionTest
✅ ExecuteFailsWhenPowerFXThrowsTest
✅ ExecuteFailsWhenUsingNonExistentVariableTest
✅ ExecuteFooFromModuleFunction
✅ ExecuteMultipleFunctionsTest
✅ ExecuteMultipleFunctionsWithDifferentLocaleTest
✅ ExecuteOneFunctionTest
✅ ExecuteScreenshotFunctionTest
✅ ExecuteSelectFunctionFailingTest
✅ ExecuteSelectFunctionTest
✅ ExecuteSelectFunctionThrowsOnDifferentRecordTypeTest
✅ ExecuteSetPropertyFunctionTest
✅ ExecuteSetPropertyFunctionThrowsOnDifferentRecordTypeTest
✅ ExecuteThrowsOnNoSetupTest
✅ ExecuteWaitFunctionTest
✅ ExecuteWaitFunctionThrowsOnDifferentRecordTypeTest
✅ ExecuteWithVariablesTest
✅ RunRequirementsCheckAsyncTest
✅ RunRequirementsCheckAsyncThrowsOnCheckAndHandleIfLegacyPlayerTest
✅ RunRequirementsCheckAsyncThrowsOnTestEngineReadyTest
✅ SetupDoesNotThrow
✅ UpdatePowerFxModelAsyncThrowsOnCantGetAppStatusTest
✅ UpdatePowerFxModelAsyncThrowsOnNoSetupTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxHelperTests

✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: ";;;;", expectedFormulas: ["", "", "", ""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "'Test;;2333';Max(1;'Button1;Button2';23;/*\n\n;;Co"..., expectedFormulas: ["'Test;;2333'", "Max(1;'Button1;Button2';23;/*\n\n;;Comment\n\n*/33"...])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "'Test;;2333';Max(1;'Button1;Button2';23;/*\n\n;;Co"..., expectedFormulas: ["'Test;;2333'", "Max(1;'Button1;Button2';23;/*\n\n;;Comment\n\n33,1"...])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "'Test;2212", expectedFormulas: ["'Test", "2212"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "", expectedFormulas: [])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "##Max(1;2;Max(22;34;Sum(1;>?2,2)), 40);1+1;/*Comme"..., expectedFormulas: ["##Max(1", "2", "Max(22", "34", "Sum(1", ...])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "$\";{1;2;3;Max(1;2;30,40)}\";Max(1;20;3)", expectedFormulas: ["$\";{1;2;3;Max(1;2;30,40)}\"", "Max(1;20;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\";Max("..., expectedFormulas: ["$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\"", "Max(1;20;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\"", expectedFormulas: ["$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1 + 2", expectedFormulas: ["1 + 2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1;;;2;;", expectedFormulas: ["1", "", "", "2", ""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1#1;/*comment;;*/2+2", expectedFormulas: ["1#1", "/*comment;;*/2+2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1+1;/*comment;;*/2+2", expectedFormulas: ["1+1", "/*comment;;*/2+2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(;;;1,2)", expectedFormulas: ["Max(;;;1,2)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(;22)", expectedFormulas: ["Max(;22)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(1;2;3)", expectedFormulas: ["Max(1;2;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(1;2;Max(22;34;Sum(1;>?2,2)), 40);1+1;/*Comment"..., expectedFormulas: ["Max(1;2;Max(22;34;Sum(1;>?2,2)), 40)", "1+1", "/*Comment;*/"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(1;2;Max(22;34;Sum(1;2,2)), 40);1+1;/*Comment;*"..., expectedFormulas: ["Max(1;2;Max(22;34;Sum(1;2,2)), 40)", "1+1", "/*Comment;*/"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Select(Button1);Assert(Button1.Text=\"semicolons;;"..., expectedFormulas: ["Select(Button1)", "Assert(Button1.Text=\"semicolons;;;;semicolons\")", "1+2", "Max(1;2;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Select(Button1)", expectedFormulas: ["Select(Button1)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Select(Button1/*Selecting button 1;;;*/);Assert(Bu"..., expectedFormulas: ["Select(Button1/*Selecting button 1;;;*/)", "Assert(Button1.Text = Text(\"Ab\";\"Abcd\"))"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: ";;", expectedFormulas: [""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "\"string \n;;String\";;1+2\n\n\n;;Max(\n1;2;\n3);;", expectedFormulas: ["\"string \n;;String\"", "1+2\n\n\n", "Max(\n1;2;\n3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "$\";;;;{1;;2;;\n\n3;;Max(1;;2;;30,3;40)}\"\n\n\n;;"..., expectedFormulas: ["$\";;;;{1;;2;;\n\n3;;Max(1;;2;;30,3;40)}\"\n\n\n", "Max(1;;20;;3)", "1+1"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "1;;;;2", expectedFormulas: ["1", "", "2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "1#1;2+2;;/*comment;;*/3+3;;Max(1;2;3)", expectedFormulas: ["1#1;2+2", "/*comment;;*/3+3", "Max(1;2;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Max(1;;2;;3;30;;Max(230;;23;;33);;3);;Select(Butto"..., expectedFormulas: ["Max(1;;2;;3;30;;Max(230;;23;;33);;3)", "Select(Button1;;Button2;;Button3;;;;", ")"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Max(1;;2;;3;30;;Max(230;;23;;33);;3);;Select(Butto"..., expectedFormulas: ["Max(1;;2;;3;30;;Max(230;;23;;33);;3)", "Select(Button1;;Button2;;Button3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Max(1;;2;;3;30;;Max(230;;23;;33);;3)", expectedFormulas: ["Max(1;;2;;3;30;;Max(230;;23;;33);;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Select(Button1);;Assert(Button1.Text=\"semicolons;"..., expectedFormulas: ["Select(Button1)", "Assert(Button1.Text=\"semicolons;;;;semicolons\")", "1+2", "Max(1,2,3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "it", expression: "$\";;;;{1;;2;;3;;;;Max(1;;2;;;;30,3;40)}\";;;;", expectedFormulas: ["$\";;;;{1;;2;;3;;;;Max(1;;2;;;;30,3;40)}\"", ""])

✅ Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests

✅ BeginScopeThrowsIfScopeAlreadyBegunTest
✅ BeginScopeThrowsOnInvalidInputTest
✅ IsEnabledTest(level: Critical, shouldBeEnabled: True)
✅ IsEnabledTest(level: Debug, shouldBeEnabled: True)
✅ IsEnabledTest(level: Error, shouldBeEnabled: True)
✅ IsEnabledTest(level: Information, shouldBeEnabled: True)
✅ IsEnabledTest(level: None, shouldBeEnabled: True)
✅ IsEnabledTest(level: Trace, shouldBeEnabled: True)
✅ IsEnabledTest(level: Warning, shouldBeEnabled: True)
✅ LoggerTest
✅ WriteToLogsFileThrowsOnInvalidPathTest

✅ Microsoft.PowerApps.TestEngine.Tests.Reporting.TestReporterTests

✅ CreateTestRunTest
✅ CreateTestStorageNameTest
✅ CreateTestSuiteTest
✅ CreateTestTest
✅ EndTestRunTest
✅ EndTestTest(success: False, stdout: "some logs", additionalFiles: [], errorMessage: null)
✅ EndTestTest(success: True, stdout: "some logs", additionalFiles: ["file1.txt", "file2.txt", "file3.txt"], errorMessage: null)
✅ EndTestTest(success: True, stdout: "some logs", additionalFiles: [], errorMessage: "error message")
✅ EndTestTest(success: True, stdout: "some logs", additionalFiles: [], errorMessage: null)
✅ FailTestTest
✅ GenerateTestReportTest
✅ StartTestRunTest
✅ StartTestTest
✅ ThrowsOnInvalidTestRunIdTest(testRunId: "")
✅ ThrowsOnInvalidTestRunIdTest(testRunId: "nonexistentid")
✅ ThrowsOnInvalidTestRunIdTest(testRunId: null)

✅ Microsoft.PowerApps.TestEngine.Tests.SingleTestRunnerTests

✅ CreateDirectoryThrowsTest
✅ GenerateAppUrlThrowsTest
✅ GoToUrlThrowsTest
✅ LoginAsUserThrowsTest
✅ PowerFxExecuteThrowsTest
✅ PowerFxSetupThrowsTest
✅ PowerFxUpdatePowerFxModelAsyncThrowsTest
✅ SetupNetworkRequestMockThrowsTest
✅ SingleTestRunnerCanOnlyBeRunOnce
✅ SingleTestRunnerPowerFxTestFail
✅ SingleTestRunnerSuccessWithTestDataOneTest(additionalFiles: ["/logs.txt", "/screenshot1.png", "/screenshot2.png"])
✅ SingleTestRunnerSuccessWithTestDataOneTest(additionalFiles: [])
✅ SingleTestRunnerSuccessWithTestDataOneTest(additionalFiles: null)
✅ SingleTestRunnerSuccessWithTestDataTwoTest(additionalFiles: ["/logs.txt", "/screenshot1.png", "/screenshot2.png"])
✅ SingleTestRunnerSuccessWithTestDataTwoTest(additionalFiles: [])
✅ SingleTestRunnerSuccessWithTestDataTwoTest(additionalFiles: null)
✅ TestInfraSetupThrowsTest
✅ UserInputExceptionHandlingTest

✅ Microsoft.PowerApps.TestEngine.Tests.System.FileSystemTests

✅ IsValidFilePathTest(filePath: "", expectedResult: False)
✅ IsValidFilePathTest(filePath: "C:/fold:er", expectedResult: False)
✅ IsValidFilePathTest(filePath: "C:/folder/file.txt", expectedResult: True)
✅ IsValidFilePathTest(filePath: "C:\\folder", expectedResult: True)
✅ IsValidFilePathTest(filePath: "C:\\folder\\file", expectedResult: True)
✅ IsValidFilePathTest(filePath: "file.txt", expectedResult: True)
✅ IsValidFilePathTest(filePath: null, expectedResult: False)
✅ RemoveInvalidFileNameCharsTest(inputFileName: "", expectedFileName: "")
✅ RemoveInvalidFileNameCharsTest(inputFileName: "file.txt", expectedFileName: "file.txt")

✅ Microsoft.PowerApps.TestEngine.Tests.TestEngineTests

✅ GetLocaleFromTestSettingsThrowsUserInputExceptionOnInvalidLocale
✅ GetLocaleFromTestSettingsUseSystemLocaleIfNull(localeInput: "")
✅ GetLocaleFromTestSettingsUseSystemLocaleIfNull(localeInput: null)
✅ TestEngineReturnsPathOnUserInputErrors
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "GCC", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "GCC", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "GCC", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "Prod", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }, BrowserConfiguration { ... }, BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "Prod", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }, BrowserConfiguration { ... }, BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "Prod", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: TestOutput, domain: "", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: TestOutput, domain: null, testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, ExtensionModules = TestSettingExtensions { AllowModule = [...], AllowNamespaces = [...], CheckAssemblies = True, DenyModule = [...], DenyNamespaces = [...], ... }, FilePath = null, Headless = True, ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: "C:\\testPlan.fx.yaml", environmentId: "", tenantId: "a01af035-a529-4aaf-aded-011ad676f976", domain: "apps.powerapps.com")
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: "C:\\testPlan.fx.yaml", environmentId: "Default-EnvironmentId", tenantId: "a01af035-a529-4aaf-aded-011ad676f976", domain: "")
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: null, environmentId: "Default-EnvironmentId", tenantId: "a01af035-a529-4aaf-aded-011ad676f976", domain: "apps.powerapps.com")
✅ TestEngineWithDefaultParamsTest
✅ TestEngineWithInvalidLocaleTest
✅ TestEngineWithMultipleBrowserConfigTest
✅ TestEngineWithUnspecifiedLocaleShowsWarning

✅ Microsoft.PowerApps.TestEngine.Tests.TestInfra.PlaywrightTestInfraFunctionTests

✅ AddScriptTagSuccessfulTest
✅ AddScriptTagToFrameSuccessfulTest
✅ ClickAsyncSuccessfulTest
✅ EndTestRunSuccessTest
✅ FillAsyncSuccessfulTest
✅ GoToUrlTest
✅ GoToUrlThrowsOnInvalidUrlTest(url: "")
✅ GoToUrlThrowsOnInvalidUrlTest(url: "file://c:/test.txt")
✅ GoToUrlThrowsOnInvalidUrlTest(url: "hi")
✅ GoToUrlThrowsOnInvalidUrlTest(url: "www.microsoft.com")
✅ GoToUrlThrowsOnInvalidUrlTest(url: null)
✅ GoToUrlThrowsOnUnsuccessfulResponseTest
✅ PageFunctionsThrowOnNullPageTest
✅ RouteNetworkRequestTest
✅ RunJavascriptSuccessfulTest
✅ ScreenshotSuccessfulTest
✅ ScreenshotThrowsOnInvalidScreenshotFilePath
✅ SetupAsyncExtensionLocaleTest(testLocale: "de-DE")
✅ SetupAsyncExtensionLocaleTest(testLocale: "en-US")
✅ SetupAsyncExtensionLocaleTest(testLocale: "fr-FR")
✅ SetupAsyncTest(browser: "Chromium", device: "Pixel 2", screenWidth: null, screenHeight: null)
✅ SetupAsyncTest(browser: "Chromium", device: null, screenWidth: null, screenHeight: null)
✅ SetupAsyncTest(browser: "Safari", device: "iPhone 8", screenWidth: 400, screenHeight: 800)
✅ SetupAsyncTest(browser: "Safari", device: "iPhone 8", screenWidth: 400, screenHeight: null)
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "Chrome")
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "INVALID_BROWSER_NAME")
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "Safari")
✅ SetupAsyncThrowsOnNullBrowserConfigTest
✅ SetupAsyncThrowsOnNullOrEmptyBrowserTest(browser: "")
✅ SetupAsyncThrowsOnNullOrEmptyBrowserTest(browser: null)
✅ SetupAsyncThrowsOnNullTestSettingsTest
✅ SetupNetworkRequestMockAsyncNullMockSkipTest
✅ SetupNetworkRequestMockAsyncTest
✅ SetupNetworkRequestMockAsyncThrowOnEmptyFilePathTest
✅ SetupNetworkRequestMockAsyncThrowOnInvalidFilePathTest
✅ SetupNetworkRequestMockAsyncThrowOnNullRequestURLTest
✅ SetupNetworkRequestModule

✅ src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_11.trx

4 tests were completed in 6s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
testengine.module.browserlocale.tests.PlaywrightScriptsFunctionTests 1✅ 3s
testengine.module.browserlocale.tests.PlaywrightScriptsModuleTests 3✅ 350ms

✅ testengine.module.browserlocale.tests.PlaywrightScriptsFunctionTests

✅ PlaywrightExecute(file: "c:\\test.csx", code: "#r \"Microsoft.Playwright.dll\"\r\n#r \"Microsoft."...)

✅ testengine.module.browserlocale.tests.PlaywrightScriptsModuleTests

✅ ExtendBrowserContextOptionsLocaleUpdate
✅ RegisterNetworkRoute
✅ RegisterPowerFxFunction

✅ src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_14.trx

16 tests were completed in 8s with 16 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
testengine.user.environment.tests.EnvironmentUserManagerModuleTests 16✅ 1s

✅ testengine.user.environment.tests.EnvironmentUserManagerModuleTests

✅ HandleUserPasswordScreen
✅ HandleUserPasswordScreenErrorEntry
✅ HandleUserPasswordScreenUnknownError
✅ LoginAsUserSuccessTest
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: "", password: "user1Password")
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: "[email protected]", password: "")
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: "[email protected]", password: null)
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: null, password: "user1Password")
✅ LoginUserAsyncThrowsOnInvalidPersonaTest(persona: "")
✅ LoginUserAsyncThrowsOnInvalidPersonaTest(persona: null)
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: "", passwordKey: "myPassword1234")
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: "user1Email", passwordKey: "")
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: "user1Email", passwordKey: null)
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: null, passwordKey: "myPassword1234")
✅ LoginUserAsyncThrowsOnNullTestDefinitionTest
✅ LoginUserAsyncThrowsOnNullUserConfigTest

✅ src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_19.trx

128 tests were completed in 48s with 128 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerAppFunctionsTest 128✅ 45s

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerAppFunctionsTest

✅ GenerateAppUrlTest(environmentId: "defaultEnvironment", domain: "apps.powerapps.com", appLogicalName: null, appId: "appId", tenantId: "defaultTenant", expectedAppUrl: "https://apps.powerapps.com/play/e/defaultEnvironme"..., queryParams: "")
✅ GenerateAppUrlTest(environmentId: "defaultEnvironment", domain: "apps.test.powerapps.com", appLogicalName: "defaultApp", appId: "appId", tenantId: "defaultTenant", expectedAppUrl: "https://apps.test.powerapps.com/play/e/defaultEnvi"..., queryParams: "")
✅ GenerateAppUrlTest(environmentId: "myEnvironment", domain: "apps.powerapps.com", appLogicalName: "myApp", appId: "appId", tenantId: "myTenant", expectedAppUrl: "https://apps.powerapps.com/play/e/myEnvironment/an"..., queryParams: "")
✅ GenerateAppUrlTest(environmentId: "myEnvironment", domain: "apps.powerapps.com", appLogicalName: "myApp", appId: "appId", tenantId: "myTenant", expectedAppUrl: "https://apps.powerapps.com/play/e/myEnvironment/an"..., queryParams: "&enablePATest=true&patestSDKVersion=0.0.1")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "", appLogicalName: "appLogicalName", appId: "appId", tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: "", appId: "", tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: "appLogicalName", appId: "appId", tenantId: "")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: "appLogicalName", appId: "appId", tenantId: null)
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: null, appId: null, tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: null, appLogicalName: "appLogicalName", appId: "appId", tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidTestDefinitionTest
✅ GetDebugInfoReturnsNull
✅ GetDebugInfoReturnsObject
✅ GetItemCountAsyncNoPublishedAppFunction
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 1)
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 2)
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 3)
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 4)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyAsyncNoPublishedAppFunction
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "012")
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "123")
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "456")
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "789")
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ LoadObjectModelAsyncEmbedJSDefined
✅ LoadObjectModelAsyncEmbedJSUndefined
✅ LoadObjectModelAsyncNoPublishedAppFunction
✅ LoadObjectModelAsyncTest
✅ LoadObjectModelAsyncWaitsForAppToLoad
✅ LoadObjectModelAsyncWaitsForAppToLoadWithExceptions
✅ LoadObjectModelAsyncWithDuplicatesDoesNotThrowTest
✅ LoadObjectModelAsyncWithNoModelTest(jsObjectModelString: "")
✅ LoadObjectModelAsyncWithNoModelTest(jsObjectModelString: "{ controls: [] }")
✅ LoadObjectModelAsyncWithNoModelTest(jsObjectModelString: "{}")
✅ LoadObjectModelAsyncWithNoModelTest(jsObjectModelString: null)
✅ SelectControlAsyncFailsNoPublishedAppFunction
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: False)
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: False)
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: True)
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: True)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SetPropertyAsyncItemPathTest
✅ SetPropertyAsyncThrowsOnInvalidFormulaValueTest
✅ SetPropertyBooleanAsyncTest
✅ SetPropertyDateAsyncNoPublishedAppFunction
✅ SetPropertyDateAsyncTest
✅ SetPropertyNumberAsyncTest
✅ SetPropertyRecordAsyncNoPublishedAppFunction
✅ SetPropertyRecordAsyncTest
✅ SetPropertyStringAsyncTest
✅ SetPropertyTableAsyncNoPublishedAppFunction
✅ SetPropertyTableAsyncTest
✅ TestEngineReadyNonPublishedAppWithoutJSSDKErrorCodeThrows
✅ TestEngineReadyPublishedAppWithoutJSSDKErrorCodeReturnsTrue
✅ TestEngineReadyReturnsTrue
✅ TestEngineReadyUndefinedWebplayerReturnsTrue

✅ src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_32_31.trx

3 tests were completed in 3s with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
testengine.user.environment.tests.BrowserUserManagerModuleTests 3✅ 119ms

✅ testengine.user.environment.tests.BrowserUserManagerModuleTests

✅ LoginWithBrowserState(exists: False, isDirectoryCreated: True, files: "", willPause: True)
✅ LoginWithBrowserState(exists: True, isDirectoryCreated: False, files: "", willPause: True)
✅ LoginWithBrowserState(exists: True, isDirectoryCreated: False, files: "a.txt", willPause: False)

✅ src/TestResults/runneradmin_fv-az731-970_2024-06-07_16_33_06.trx

5 tests were completed in 2s with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
testengine.module.browserlocale.tests.PauseFunctionTests 2✅ 209ms
testengine.module.browserlocale.tests.PauseModuleTests 3✅ 202ms

✅ testengine.module.browserlocale.tests.PauseFunctionTests

✅ PauseExecute
✅ SkipExecute

✅ testengine.module.browserlocale.tests.PauseModuleTests

✅ ExtendBrowserContextOptionsLocaleUpdate
✅ RegisterNetworkRoute
✅ RegisterPowerFxFunction