mirror of https://gitee.com/antv-l7/antv-l7
117 lines
3.4 KiB
JavaScript
117 lines
3.4 KiB
JavaScript
'use strict'
|
|
|
|
var assert = require('assert')
|
|
var test = require('tape')
|
|
var remark = require('remark')
|
|
var findAllAfter = require('.')
|
|
|
|
var tree = remark().parse('Some *emphasis*, **importance**, and `code`.')
|
|
var paragraph = tree.children[0]
|
|
var children = paragraph.children
|
|
|
|
test('unist-util-find-all-after', function(t) {
|
|
t.throws(
|
|
function() {
|
|
findAllAfter()
|
|
},
|
|
/Expected parent node/,
|
|
'should fail without parent'
|
|
)
|
|
|
|
t.throws(
|
|
function() {
|
|
findAllAfter({type: 'foo'})
|
|
},
|
|
/Expected parent node/,
|
|
'should fail without parent node'
|
|
)
|
|
|
|
t.doesNotThrow(function() {
|
|
assert.throws(function() {
|
|
findAllAfter({type: 'foo', children: []})
|
|
}, /Expected positive finite index or child node/)
|
|
|
|
assert.throws(function() {
|
|
findAllAfter({type: 'foo', children: []}, -1)
|
|
}, /Expected positive finite index or child node/)
|
|
|
|
assert.throws(function() {
|
|
findAllAfter({type: 'foo', children: []}, {type: 'bar'})
|
|
}, /Expected positive finite index or child node/)
|
|
}, 'should fail without index')
|
|
|
|
t.doesNotThrow(function() {
|
|
assert.throws(function() {
|
|
findAllAfter(
|
|
{
|
|
type: 'foo',
|
|
children: [{type: 'bar'}, {type: 'baz'}]
|
|
},
|
|
0,
|
|
false
|
|
)
|
|
}, /Expected function, string, or object as test/)
|
|
|
|
assert.throws(function() {
|
|
findAllAfter(
|
|
{
|
|
type: 'foo',
|
|
children: [{type: 'bar'}, {type: 'baz'}]
|
|
},
|
|
0,
|
|
true
|
|
)
|
|
}, /Expected function, string, or object as test/)
|
|
}, 'should fail for invalid `test`')
|
|
|
|
t.doesNotThrow(function() {
|
|
var res = children.slice(2)
|
|
|
|
assert.deepStrictEqual(findAllAfter(paragraph, children[1]), res)
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 1), res)
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 7), [])
|
|
}, 'should return the following node when without `test`')
|
|
|
|
t.doesNotThrow(function() {
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 0, children[6]), [
|
|
children[6]
|
|
])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, children[0], children[1]), [
|
|
children[1]
|
|
])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 0, children[1]), [
|
|
children[1]
|
|
])
|
|
assert.deepStrictEqual(
|
|
findAllAfter(paragraph, children[0], children[0]),
|
|
[]
|
|
)
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 0, children[0]), [])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 1, children[1]), [])
|
|
}, 'should return `node` when given a `node` and existing')
|
|
|
|
t.doesNotThrow(function() {
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 0, 'strong'), [children[3]])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 3, 'strong'), [])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, children[0], 'strong'), [
|
|
children[3]
|
|
])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, children[3], 'strong'), [])
|
|
}, 'should return a child when given a `type` and existing')
|
|
|
|
t.doesNotThrow(function() {
|
|
var res = children.slice(5)
|
|
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 0, test), res)
|
|
assert.deepStrictEqual(findAllAfter(paragraph, 6, test), [])
|
|
assert.deepStrictEqual(findAllAfter(paragraph, children[4], test), res)
|
|
assert.deepStrictEqual(findAllAfter(paragraph, children[6], test), [])
|
|
|
|
function test(node, n) {
|
|
return n >= 5
|
|
}
|
|
}, 'should return a child when given a `test` and existing')
|
|
|
|
t.end()
|
|
})
|