state-tests.ts
28 lines
| 599 B
| video/mp2t
|
TypeScriptLexer
cin
|
r133 | import { observe } from "./observable"; | ||
import { buffer } from "./operators/buffer"; | ||||
cin
|
r124 | import * as t from "tap"; | ||
interface CounterState { | ||||
count: number; | ||||
label: "low" | "mid" | "high" | ||||
} | ||||
let set: (v: CounterState) => void = () => void (0); | ||||
const initial: CounterState = { count: 0, label: "low" }; | ||||
let value = initial; | ||||
cin
|
r133 | const obs = observe<CounterState>(({ next }) => { | ||
cin
|
r124 | next(initial); | ||
set = next; | ||||
cin
|
r133 | }).pipe(buffer(2)); | ||
cin
|
r124 | |||
set({ count: 10, label: "mid" }); | ||||
obs.subscribe({ | ||||
next: v => value = v | ||||
}); | ||||
t.equal(value.count, 10, "State should update"); | ||||
set({ count: 20, label: "high" }); | ||||