Summary: When creating a brand new Flipper desktop plugin, the tests don't pass ### To Reproduce ``` npx flipper-pkg init cd flipper-plugin-new yarn jest ``` The test are not passing. It would seem that we have 2 issues since this commit:e46fcba0b2 (diff-26467a831e67f87a2bd99be5b62a71a6e3e4e7f86135c11ccede9a02e58c44feR48)#### 1. `electronRequire` is not defined  Adding: ```ts // ts-ignore global.electronRequire = require; ``` fixes the issue of course like [here](e46fcba0b2 (diff-a283d77d8667b28aec5319fe5671a91489485a683898efedf9441b816c84a447R15)) but might not be very ideal When fixing this, we hit a second issue: #### 2. Hooks cannot be defined inside tests  This is because we now require `testing-library/react` on the fly:e46fcba0b2 (diff-26467a831e67f87a2bd99be5b62a71a6e3e4e7f86135c11ccede9a02e58c44feR198)which will run `afterEach` if defined:071a6fdc1d/src/index.js (L12)A non ideal fix is to require `require("testing-library/react");` before running the test ## Changelog Fix: ensure desktop plugin template tests run Pull Request resolved: https://github.com/facebook/flipper/pull/3327 Test Plan: I've cloned the repo and run: ``` cd flipper/desktop/pkg yarn cd ../../.. ./flipper/desktop/pkg/bin/run init ``` I run the tests on the newly package created and they're now good  ## Side note The fixes are not great, if you guys have better ones to suggest, really addressing the root cause of the issue, I'll happily close the PR Also it's so easy to test desktop plugins with the awesome work you've done �, it'd be sad if the community could not totally benefit from it. Since I had this issue before (https://github.com/facebook/flipper/pull/3039), I'd be really happy to help (if given some directions 🙏) set up a test to ensure a plugin generated is always well set up. Reviewed By: passy Differential Revision: D33713611 Pulled By: aigoncharov fbshipit-source-id: 43834b30f24c2549d80923d2194487b9f9e6a1ae
5 lines
157 B
Plaintext
5 lines
157 B
Plaintext
// See https://github.com/facebook/flipper/pull/3327 for why we need this
|
|
// @ts-ignore
|
|
global.electronRequire = require;
|
|
require("@testing-library/react");
|