Open
Description
Acknowledgement
- I acknowledge that issues using this template may be closed without further explanation at the maintainer's discretion.
Comment
Agenda today was simply to discuss fourslash strategy in the native repo
- Not doing JS embed / JS interpreter
- Recreate the kind of high-level assertion syntax we use in Fourslash today
- Make regular test files
- Use Go string literals to embed this
- Sorry people doing template literals, you'll have to do a workaround
- Recommended workarounds: Concat? Use a placeholder char? Put the file in testdata dir?
- Why not use API?
- Would require massive re-abstraction and separate test runner
- The services layer isn't exposed to API in exactly the same way
- Should use LSP for that anyway
- Make this hot-swappable though
- Open questions / discussion
- Is the perf of this many tests well-understood?
- Yes, other projects have more too
- We'll want to re-use caching like we do in fourslash today
- How to port tests?
- AI?
- Group these by feature areas, be more intentional here
- Be smarter about re-use of the same program text
- How do we cross-compare with Strada?
- May need to massage the existing baselines
- LSP/TSP already differ in fundamental ways
- Maybe... don't?
- We just need to convert tests
- Best effort baseline comparison based on ROI, be smart about it
- Fourslash baselines are more bespoke per feature area
- Or are JSON dumps 🫠
- Or both
- Is the perf of this many tests well-understood?