facebook/relay

Add Typescript validation to pipelines to prevent regressions

drewatk opened this issue · 1 comments

We'll need a way to validate Typescript code to ensure that we do not regress the generated code as we are moving towards typechecking checking generated TS files in #4745.

Discussion below with @captbaritone:

Yeah, for Flow we have our own codebase as a massive test case. For TypeScript we'll need something to echo that setup. Running typescript on integration tests could be a great way to achieve that pretty cheaply.

We have rust utilities that materialize these fixture files into multiple files in a directory and then run the compiler on them. Maybe that test could also run the TypeScript type check on them? Maybe a little brittle to shell out to TypeScript from within the Rust tests, but probably worth it.

Will require a little fiddling to get it to work both internally and in GitHub CI and ensure we keep the same version(s?) of TypeScript, but I bet we can figure it out.

Here's where we run the integration tests: https://github.com/facebook/relay/blob/main/compiler/crates/relay-compiler/tests/relay_compiler_integration.rs

cc @rbalicki2 regarding upstreaming TypeScript types and how we might add tests which assert their correctness.

Originally posted by @captbaritone in #4753 (comment)

Thanks for pulling this up into a top-level issue!