Read annotations from the host page in settings.annotations()
Add code to the `settings.annotations()` method so that, instead of reading the setting from the URL only, it reads the annotations setting from the `js-hypothesis-config` scripts in the host page or, failing that, tries to read it from the URL. In `index.js`, after `settings.annotations()` is called, there are two `Object.assign()` calls that overwrite values already in the `config` objects with any returned from `js-hypothesis-config` scripts or the `window.hypothesisConfig()` function in the host page. So a `config.annotations` setting from `settings.annotations()` already gets overwritten by a `annotations` setting in a `js-hypothesis-config` script or `hypothesisConfig()` function. This commit makes that overwriting explicit, encapsulates it in the `annotations()` method, and unit tests it. Note that the two `Object.assign()`s are still present in `index.js` so the `config.annotations` setting returned by the `annotations()` method still gets overwritten by them, but this now has no effect as the `annotations()` method will already have set `config.annotations` to the same value that it will be overwritten with. In a future commit the `Object.assign()`s will be removed and there won't be any overwriting. Note that **this will change the behaviour of the code** once the `Object.assign()`s have been removed: the `annotations()` method reads the annotations setting from `js-hypothesis-config` scripts but does not read it from `window.hypothesisConfig()` any longer. I don't believe it's necessary to read `annotations` from `hypothesisConfig()`.
Showing
Please register or sign in to comment