* fix: when native modules are already universal, don't lipo. adds `node-mac-permissions` fixture from https://github.com/codebytere/node-mac-permissions and resolves 3 `it.todo` test cases
* add test `different app dirs with different macho files (shim and lipo)`
* add additional test
* PR feedback
* gotta close `fd`
* use `stream` to read first 4 bytes. copy native fixture before packing into asar to leverage `unpack: "**/*.node"` properly.
* convert params to object
* rename `createTestApp` to `createStagingAppDir` and add jsdoc to the function
* compiler error from merge conflict
* update snapshots
* update snapshots
* only check x64Content since it's the tmp app
* compile macho binaries at runtime using hellow-world.c for fixtures in lipo tests
* Update jest.setup.ts
Co-authored-by: Erik Moura <erikian@erikian.dev>
* Update jest.setup.ts
Co-authored-by: Erik Moura <erikian@erikian.dev>
* remove unstable properties for specific keys
* force redo
* update snapshots
* stripping only hello-world from snapshot and only hash from macho-specific asar integrity
* optimize logic :)
---------
Co-authored-by: Erik Moura <erikian@erikian.dev>
- When an application uses multiple asars (`webapp.asar`, `anything.asar`, etc.), `EnableEmbeddedAsarIntegrityValidation` fuse breaks the application due to not all asars having integrity generated for them. Fixes: #116
- **Also fixes bug** to correctly test `makeUniversalApp no asar mode should shim two different app folders`, (it was not having an asar integrity generated for the shimmed asar)
Functionality added:
- Moves all asar integrity generation to **after** all app assets have been merged/shimmed/copied. This allows other asars that were provided to also be scanned and have asar integrity generated for them.
- Extracted common Integrity logic to a single file `integrity.ts`
- Adds unit test for multi-asar apps
* purely test suite on steroids
* verify stuff
* more fun verifies
* ok ok ok I'm done
* extend timeout and consolidate to constant for easier usage across tests
* PR feedback :)
Remove warnings by adding transform regex to `ts-jest` and `testMatch`.
* cleanup
* cleanup
* PR feedback & converting `export function` to `export const` in `util.ts`