Created
August 12, 2018 20:15
-
-
Save kasper573/ceed32a22e472820d7c898011f6fc290 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {when} from 'mobx'; | |
import {Resource} from './Resource'; | |
describe('Resource', () => { | |
it('initial value is the default value when default getter is available', () => { | |
const defaultValue = 1; | |
const asyncValue = 2; | |
const r = new Resource('test', async () => asyncValue, () => defaultValue); | |
expect(r.value).toBe(defaultValue); | |
}); | |
it('initial value is undefined when no default getter is available', () => { | |
const r = new Resource('test', async () => 5); | |
expect(r.value).toBeUndefined(); | |
}); | |
it('default value is replaced by async value', async () => { | |
const defaultValue = 1; | |
const asyncValue = 2; | |
const r = new Resource('test', async () => asyncValue, () => defaultValue); | |
await when(() => r.isResolved); | |
expect(r.value).toBe(asyncValue); | |
}); | |
it('maintains value while updating', async () => { | |
let value = 1; | |
const r = new Resource('test', async () => value); | |
await when(() => r.isResolved); | |
value = 2; | |
const promise = r.update(); | |
expect(r.value).toBe(1); | |
await promise; | |
}); | |
it('changes value after updating', async () => { | |
let value = 1; | |
const r = new Resource('test', async () => value); | |
await when(() => r.isResolved); | |
value = 2; | |
await r.update(); | |
expect(r.value).toBe(2); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment