Skip to content

fix(store): be more explicit when checking if Angular is in test mode - #1831

Merged
arturovt merged 1 commit into
masterfrom
fix/is-test-mode
Mar 16, 2022
Merged

fix(store): be more explicit when checking if Angular is in test mode#1831
arturovt merged 1 commit into
masterfrom
fix/is-test-mode

Conversation

@arturovt

@arturovt arturovt commented Mar 15, 2022

Copy link
Copy Markdown
Member

@markwhitfeld I've noticed that this function doesn't work in ESP app because there's no MockNgModuleResolver anymore (the @angular/compiler/testing) just doesn't export anything now. Thee MockNgModuleResolver was available before the VE support has been removed.

We couldn't see that in NGXS repository since our packages are version 9.

Comment thread packages/store/internals/src/angular.ts

@markwhitfeld markwhitfeld left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

2 small improvements

Comment on lines 10 to 13
function resetMemoization() {
const fn = <any>isAngularInTestMode;
// Reset the memoization
fn && fn.reset && fn.reset();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't think it is necessary to memoise this anymore because the checks are so simple!
We could remove the memoisation from the lib export and remove this testing code.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Removed memoization.

expect(result).toEqual(true);
it('should return true if `__karma__` is available', () => {
// Arrange & act & assert
const __karma__ = ɵglobal.__karma__;

@markwhitfeld markwhitfeld Mar 16, 2022

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We could have a test helper (like the freshPlatform one you created) that wraps the test execution with a try..finally and stores and restores the values on ɵglobal (or deletes them again if they weren't there to begin with).

eg:

 it('should return true if `__karma__` is available', isolateGlobalTestProps(() => { 

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'd like to keep these tests simple for now. We could've thought about the isolateGlobalTestProps implementation in the future.

@arturovt
arturovt merged commit 69553aa into master Mar 16, 2022
@arturovt
arturovt deleted the fix/is-test-mode branch March 16, 2022 21:52
@arturovt

Copy link
Copy Markdown
Member Author

Mark, I’ve merged it, just wanna test it in our app. I can make further changes in another PR if needed.

@markwhitfeld markwhitfeld added this to the v3.7.4 milestone Jun 10, 2022
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Jun 17, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@ngxs/form-plugin](https://github.com/ngxs/store) | dependencies | patch | [`3.7.3` -> `3.7.4`](https://renovatebot.com/diffs/npm/@ngxs%2fform-plugin/3.7.3/3.7.4) |
| [@ngxs/storage-plugin](https://github.com/ngxs/store) | dependencies | patch | [`3.7.3` -> `3.7.4`](https://renovatebot.com/diffs/npm/@ngxs%2fstorage-plugin/3.7.3/3.7.4) |
| [@ngxs/store](https://github.com/ngxs/store) | dependencies | patch | [`3.7.3` -> `3.7.4`](https://renovatebot.com/diffs/npm/@ngxs%2fstore/3.7.3/3.7.4) |

---

### Release Notes

<details>
<summary>ngxs/store</summary>

### [`v3.7.4`](https://github.com/ngxs/store/blob/HEAD/CHANGELOG.md#&#8203;374-2022-06-09)

[Compare Source](ngxs/store@v3.7.3...v3.7.4)

-   Build: include support for Angular 14 [#&#8203;1850](ngxs/store#1850)
-   Fix: Do not re-use the global `Store` instance between different apps [#&#8203;1740](ngxs/store#1740) and [#&#8203;1804](ngxs/store#1804)
-   Fix: Handle mixed async scenarios for action handlers [#&#8203;1762](ngxs/store#1762)
-   Fix: An action with cancelUncompleted enabled should unsubscribe before the next action handler is called [#&#8203;1763](ngxs/store#1763)
-   Fix: Do not run `Promise.then` within synchronous tests when decorating factory [#&#8203;1753](ngxs/store#1753)
-   Fix: Provide `NoopNgxsExecutionStrategy` explicitly when the zone is nooped [#&#8203;1819](ngxs/store#1819)
-   Fix: Complete the state stream once the root view is removed [#&#8203;1830](ngxs/store#1830)
-   Fix: Be more explicit when checking if Angular is in test mode [#&#8203;1831](ngxs/store#1831), [#&#8203;1832](ngxs/store#1832)
-   Fix: Devtools Plugin - Do not connect to devtools when the plugin is disabled [#&#8203;1761](ngxs/store#1761)
-   Fix: Router Plugin - Cleanup subscriptions when the root view is destroyed [#&#8203;1754](ngxs/store#1754)
-   Fix: WebSocket Plugin - Cleanup subscriptions and close the connection when the root view is destroyed [#&#8203;1755](ngxs/store#1755)
-   Fix: Storage Plugin - Only restore state if key matches `addedStates` [#&#8203;1746](ngxs/store#1746)
-   Fix: Forms Plugin - Do not destructure primitive types [#&#8203;1845](ngxs/store#1845)
-   Performance: Tree-shake errors and warnings [#&#8203;1732](ngxs/store#1732)
-   Performance: Tree-shake `ConfigValidator`, `HostEnvironment` and `isAngularInTestMode` [#&#8203;1741](ngxs/store#1741)
-   Performance: Tree-shake `SelectFactory` [#&#8203;1744](ngxs/store#1744)
-   Performance: Tree-shake `deepFreeze` [#&#8203;1819](ngxs/store#1819)
-   Performance: Run change detection once for all selectors when asynchronous action has been completed [#&#8203;1828](ngxs/store#1828)
-   Performance: Router Plugin - Tree-shake `isAngularInTestMode()` [#&#8203;1738](ngxs/store#1738)
-   Performance: Tree-shake `isAngularInTestMode()` [#&#8203;1739](ngxs/store#1739)
-   Performance: Storage Plugin - Tree-shake `console.*` calls and expand error messages [#&#8203;1727](ngxs/store#1727)
-   CI: Bundlesize checks should run reliably [#&#8203;1812](ngxs/store#1812)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1401
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants