Extract integration testing utils and runner#334
Extract integration testing utils and runner#334Ethan-Arrowood wants to merge 10 commits intomainfrom
Conversation
Ethan-Arrowood
commented
Apr 10, 2026
- extract integration test utils to @harperfast/integration-testing-framework
- fix: use file: reference for integration-testing-framework devDependency
- actually get it to work
- migration to published @harperfast/integration-testing package
…mework Move harperLifecycle.ts, loopbackAddressPool.ts, and targz.ts out of integrationTests/utils/ and into the new standalone package. Update all integration test files and the run.ts script to import from the package instead of local relative paths. Add @harperfast/integration-testing-framework as a devDependency (npm linked locally). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Caution Review the following alerts detected in dependencies. According to your organization's Security Policy, you must resolve all "Block" alerts before proceeding. It is recommended to resolve "Warn" alerts too. Learn more about Socket for GitHub.
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
kriszyp
left a comment
There was a problem hiding this comment.
I'm curious why we don't just export these modules (add them to the exports of the package.json)? If you already have harper installed, why not access them that way instead of installing a separate package? It seems like the existing mechanism has a more reliable way of finding the correct/current harper starting module; is https://github.com/HarperFast/integration-testing/blob/main/src/harperLifecycle.ts#L146 going to reliably resolve to the correct module?
If we do it this, presumably we would need to update harper-pro as well, as it uses these integration test modules extensively (although I guess, I'm concerned that it would actually resolve correctly).
|
The main reason I went this way was because if this was part of |
|
Plus, this way, users can really bring their own Harper installation. It can be built from source, or npm download, or something else! Embedding it in For |
kriszyp
left a comment
There was a problem hiding this comment.
Plus, this way, users can really bring their own Harper installation. It can be built from source, or npm download, or something else!
Isn't that exactly what adding the test modules to the exports would provide (although hard to evaluate "something else")?
My main concern is that we have still been actively making a lot of changes, fixes, and modifications to the integration testing modules in coordination with integration tests themselves. And this has already proven onerous to coordinate across repos, as we have experienced broken integration tests in harper-pro due to changes in the base modules (that weren't noticed as breaking due to the integration tests failing in a different repo). Creating another separate repo/package seems like it exacerbates this complexity and coordination challenge.
Anyway, I think this change might have been a bit premature and could have been planned further out. But I'm sure we can manage and make this work.
kriszyp
left a comment
There was a problem hiding this comment.
Also before merging, I believe we need to ensure there is a corresponding PR for harper-pro to update its integration test imports as well.
|
Interesting change, feels like it might add another level of complexity to test-based dev in Harper. I quite like the “everything is in one workspace” convenience. Makes debugging Harper really easy when running the tests. I’m not opposed to the direction, just curious how this will impact the current workflow. |
My understanding is that if we had this included with the Harper module, then users will be stuck with the integration testing utils as defined at the specific Harper version. By splitting it out, now we can freely iterate on either thing as much as we want, and users can get those changes without having to deal with updating the other one. I don't really see how this adds another level of complexity; its the exact same code as before. We don't have to go this direction though if everyone feels strongly. I really only pulled it out because it did make my development experience better. If I'm on my own in that then so be it! I'm happy to continue with it in core. |