angular-cn/packages/language-service/ivy/test
Keen Yee Liau 58ea040570 test(language-service): add new mock host for testing ivy (#36879)
This commit adds a new mock host for testing the ivy language service.

Unlike the existing mock_host which mocks the LanguageServiceHost, the
Ivy mock host mocks just the filesystem interface, aka ts.ServerHost.

This is because Ivy language service requires an actual Project to
perform operations like adding synthetic typecheck files to the project,
and by extension, to the ts.Program. These requirements make the existing
mock host unsuitable to be reused.

This new testing structure also improves test performance, because the
old mock host copies (it actually creates symlinks, but still that's
relatively expensive due to the sheer number of files involved) all
@angular/* packages along with the typescript package to a temporary
node_modules directory. This is done every time setup() is called.
Instead, this new mock host just loads them from a pre-determined path
in Bazel runfiles.

PR Close #36879
2020-05-04 12:47:15 -07:00
..
BUILD.bazel test(language-service): add new mock host for testing ivy (#36879) 2020-05-04 12:47:15 -07:00
mock_host.ts test(language-service): add new mock host for testing ivy (#36879) 2020-05-04 12:47:15 -07:00
mock_host_spec.ts test(language-service): add new mock host for testing ivy (#36879) 2020-05-04 12:47:15 -07:00