mutant
Version:
Create observables and map them to DOM elements. Massively inspired by hyperscript and observ-*. No virtual dom, just direct observable bindings. Unnecessary garbage collection is avoided by using mutable objects instead of blasting immutable junk all ove
41 lines (31 loc) • 925 B
JavaScript
require('setimmediate')
require('source-map-support').install()
var test = require('tape')
var MutantArray = require('../array')
var reverse = require('../reverse')
var Struct = require('../struct')
test('reverse - result is reversed', function(t) {
var array = MutantArray(['cat', 'dog', 'cow', 'sheep'])
var reversed = reverse(array)
var actual = reversed()
t.deepEqual(actual, ['sheep', 'cow', 'dog', 'cat'])
t.end()
})
test('reverse - raw objects preserved', function(t) {
// this is what makes reverse better than just using computed
let struct0 = Struct({value: 0})
let struct1 = Struct({value: 1})
let struct2 = Struct({value: 2})
var array = MutantArray([
struct0, struct1, struct2
])
var reversed = reverse(array)
var raw = []
reversed.forEach(item => {
raw.push(item)
})
t.deepEqual(raw, [
struct2, struct1, struct0
])
t.end()
})