TheSpyder/rescript-webapi

Improve tests with expected types and ensuring every line generates code

オープン

#42 opened on 2021/11/02

 (4 件のコメント) (0 件のリアクション) (0 人の担当者)ReScript (38 件のフォーク)github user discovery
help wanted

Repository metrics

Stars
 (159 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

There are two problems with our tests:

  1. They use let _ = blah() which means if the type of a method changes the test still compiles. This is not good.
  2. By always using _ to avoid exporting the reference, some lines are optimised away by ReScript and never emitted (this is arguably a bug, but it's what we are stuck with for now).

To solve the first problem, change things like

let _ = range->getClientRects

to

let _: array<Dom.domRect> = range->getClientRects

For the second, about all we can do is audit the JS and see which lines don't result in compiled output. I have found that externals returning an optional value in a let _ = line are not emitted, here's how I solved that: https://github.com/tinymce/rescript-webapi/blob/b138ae2982d24193473e01929251871ea2d4ba65/tests/Webapi/Dom/Webapi__Dom__Document__test.res#L64-L67

The more I think about this the more I believe it should be logged as a bug with ReScript. But we should find them all first to make the bug report more valuable.

コントリビューターガイド