observable.spec.js 876 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { createObservable } from '../src/observable'
  2. test('createObservable > successfully wraps object', () => {
  3. let target = {
  4. foo: 'bar'
  5. }
  6. let observable = createObservable(target, { get: () => {} })
  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, { get: () => {} })
  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. set: () => {
  27. fixture = 100
  28. }
  29. })
  30. observable.foo = 'bob'
  31. expect(fixture).toEqual(100)
  32. })