Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit update almost all dependencies but jest. This is because Jest 28 seems to break while running code, presumably due to `import`/`export` declarations in imported RxJS files (but I do not think RxJS is at fault here) that lead to an `unexpected token` when running through Jest. You could think that the fault is linked to node not understanding `import`/`export` (linked to CommonJS/ES6 import shenanigans) but it is even trickier than that as Jest already performed some JavaScript transformation at that point, which made the import/export inside an IIFE - and I'm not sure that this is supported anywhere. After taking ~a day (much more time than I should) trying to play around to remove that issue, I gave up and avoided updating Jest to its v28. In the future, I guess we should either: - understand what we're supposed to do here to make it work with Jest 28 (Jest documentation was poor - even without considering the sometimes incomprehensible google-translated french one I get each time by default on their docusaurus-based documentation) Opened GitHub issues were 100% for angular-based applications - as it seems the RxJS+TypeScript cocktail is very majoritarily those. Those have their own "fix" through another magical angular dependency. Moreover, it does not help that Jest's philosophy seems to be trying to be extremely simple for users at the cost of some complex behaviors (as an example, it looks like it auto-picks a `babel.config.js` file if it sees one at the root of the project. If like us you have multiple build files at the root depending on the building context, it is not a good idea to silently pick random files like that by default). I couldn't understand under an acceptable time where the issue was - and at which step it happened. I just browsed dozens of doc pages, GitHub and StackOverflow issues which just proposed to add yet other automagic dependencies (looked like a parody of what JavaScript haters talk about!) - which all seemed to have no effect whatsoever. I also asked for help from other teams at Canal+, but those in the same situation (TypeScript and RxJS) also seem to have random issue preventing them from doing the switch. - Remove RxJS from the code. It's presumably not its fault yet we already started doing that, so maybe we'll just raise the jest version once RxJS is definitely removed from the RxPlayer. - Wait for some kind of Jest fix or new way of handling those? - Remove Jest and go with another testing framework. I almost did that due to being fed-up with Jest, but it might no be as easy as it seems, mostly the module-mocking part as I'm unsure of how other framework handle that now and if it is as convenient as Jest's way.
- Loading branch information