Skip to content

[0.82] Re-introduce Desktop integration tests#16023

Merged
JunielKatarn merged 1 commit intomicrosoft:0.82-stablefrom
jurocha-ms:desk-it-fabric-82
Apr 22, 2026
Merged

[0.82] Re-introduce Desktop integration tests#16023
JunielKatarn merged 1 commit intomicrosoft:0.82-stablefrom
jurocha-ms:desk-it-fabric-82

Conversation

@JunielKatarn
Copy link
Copy Markdown
Contributor

@JunielKatarn JunielKatarn commented Apr 22, 2026

Backport of #16017

Microsoft Reviewers: Open in CodeFlow

* Update packages locks

* Update node locks

* Add FollyWin32 lock

* Add Prototype

* Try adding IDLs from MSRN

* Update Vars target

* Add manifest, just in case

* Export property bag symbols used by desk ITs

* Grab missing generated includes

* Instantiate msrn:ReactNativeHost

* TODO: Obtain main queue

* Implement TestUIDispatcher

* Define HermesPackageName MSBuild property

* split instance settins instantiation

* Set up bundle source and platform

* Init apartment at class init

* Declare TestReactNativeHostHolder

* Update lock

* Add WinAppSDK dependency

* Bootstrap WinApp runtime

* Implement holder synchronization and UI queue

* Update TestUIDispatcher to user DispatcherQueue

* Update yarn lock

* CallJSFunction: runApplication

* CallJSFunction: unmountApplicationComponentAtRootTag

* Add TestModule.h

* Fix REACT_METHOD declarations

* Implement sendAppEvent

* Implement awaiting logic for TestModule

* Add plumbing to make Dummy test pass

* Add AppState mock

* Place test support types into own compilation units and headers

* Place test support types into own compilation units and headers

* Rename MockCompositionContext -> TestCompositionContext

* Set namespace

* Rename Prototype.cpp to RNTesterHeadlessTests.cpp

* Minor edit

* Remove unused activation code

The test DLL is loaded by testhost.exe, which knows nothing about the
DLL's WinRT classes. The DLL has an embedded manifest (resource ID 2)
that registers activatable WinRT classes (like ReactNativeHost). The
code called CreateActCtxW to load that manifest and ActivateActCtx to
push it onto the thread's activation context stack — so that RoGetActivationFactory could resolve those WinRT types at runtime.

* Use infinite wait for events.

Time limits will be enforceb by CI tasks.

* Add failing condition to DummyTest

* Add class diagram

* Change files

* Remove PR.md

* Remove manifest

* Remove comment

* Implement WinRTActivationShims

Leverages the Desktop DLL activation factories removing the need to
declare some types in the DLL DEF list which are only required for
testing and otherwise should stay module-private.

* clang format

* Remove unused test filter entries

* Rename update CI references to RNTesterHeadlessTests

* Put Windows.h in separate "paragraph"

* Install Windows App SDK Runtime into build agents

* Move checkout step before installers downloads
Copy link
Copy Markdown
Contributor

@iamAbhi-916 iamAbhi-916 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@JunielKatarn JunielKatarn merged commit 56bff6a into microsoft:0.82-stable Apr 22, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants