| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { ref, effect, reactive } from '../src/index'
- describe('reactivity/value', () => {
- it('should hold a value', () => {
- const a = ref(1)
- expect(a.value).toBe(1)
- a.value = 2
- expect(a.value).toBe(2)
- })
- it('should be reactive', () => {
- const a = ref(1)
- let dummy
- effect(() => {
- dummy = a.value
- })
- expect(dummy).toBe(1)
- a.value = 2
- expect(dummy).toBe(2)
- })
- it('should make nested properties reactive', () => {
- const a = ref({
- count: 1
- })
- let dummy
- effect(() => {
- dummy = a.value.count
- })
- expect(dummy).toBe(1)
- a.value.count = 2
- expect(dummy).toBe(2)
- })
- it('should work like a normal property when nested in a reactive object', () => {
- const a = ref(1)
- const obj = reactive({
- a,
- b: {
- c: a,
- d: [a]
- }
- })
- let dummy1
- let dummy2
- let dummy3
- effect(() => {
- dummy1 = obj.a
- dummy2 = obj.b.c
- dummy3 = obj.b.d[0]
- })
- expect(dummy1).toBe(1)
- expect(dummy2).toBe(1)
- expect(dummy3).toBe(1)
- a.value++
- expect(dummy1).toBe(2)
- expect(dummy2).toBe(2)
- expect(dummy3).toBe(2)
- obj.a++
- expect(dummy1).toBe(3)
- expect(dummy2).toBe(3)
- expect(dummy3).toBe(3)
- })
- it('should unwrap nested values in types', () => {
- const a = {
- b: ref(0)
- }
- const c = ref(a)
- expect(typeof (c.value.b + 1)).toBe('number')
- })
- })
|