require('jsdom-global')(); import test from "blue-tape"; import { testStrictness } from "./util"; import { delay } from "./delay"; import { asyncComputed } from "../src/index" import * as React from "react"; import * as ReactDOM from "react-dom"; import { observer } from "mobx-react"; @observer class C extends React.Component { ac = asyncComputed(0, 10, async () => { await delay(100); return 1; }) render() { return {this.ac.get()} } } testStrictness("asyncComputed - can be used in an observer render method", async (assert: test.Test) => { const root = document.body.appendChild(document.createElement('div')); ReactDOM.render(, root); const rendered = root.querySelector("span")!; assert.equal(rendered.innerHTML, "0", "Initially renders 0"); while (rendered.innerHTML === "0") { await delay(5); } assert.equal(rendered.innerHTML, "1", "Transitions to 1"); });