observable.spec.js 829 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { createObservable } from '../src/observable'
  2. test('createObservable > successfully wraps object', () => {
  3. let target = {
  4. foo: 'bar'
  5. }
  6. let observable = createObservable(target, () => {})
  7. expect(observable.foo).toEqual('bar')
  8. })
  9. test('createObservable > can access deeply nested props', () => {
  10. let target = {
  11. foo: {
  12. bar: {
  13. baz: 'bob'
  14. }
  15. }
  16. }
  17. let observable = createObservable(target, () => {})
  18. expect(observable.foo.bar.baz).toEqual('bob')
  19. })
  20. test('createObservable > will run callback on set trap', () => {
  21. let target = {
  22. foo: 'bar'
  23. }
  24. let fixture = 0
  25. let observable = createObservable(target, () => {
  26. fixture = 100
  27. })
  28. observable.foo = 'bob'
  29. expect(fixture).toEqual(100)
  30. })