Updated test
This commit is contained in:
@ -7,78 +7,504 @@ import * as types from '../../dsl/lib/types'
|
||||
import { F, Q } from '../../dsl'
|
||||
|
||||
test('match', t => {
|
||||
t.deepEqual(F()
|
||||
.match('foo', 'bar')
|
||||
.match('foo', 'baz')
|
||||
.build(),
|
||||
Q(
|
||||
Q.match('foo', 'bar'),
|
||||
Q.match('foo', 'baz')
|
||||
)
|
||||
t.deepEqual(
|
||||
F()
|
||||
.match('foo', 'bar')
|
||||
.match('foo', 'baz')
|
||||
.build(),
|
||||
Q(
|
||||
Q.match('foo', 'bar'),
|
||||
Q.match('foo', 'baz')
|
||||
)
|
||||
)
|
||||
|
||||
t.deepEqual(F()
|
||||
.match('foo', ['bar', 'baz'])
|
||||
.build(),
|
||||
Q(
|
||||
Q.match('foo', ['bar', 'baz'])
|
||||
)
|
||||
t.deepEqual(
|
||||
F()
|
||||
.match('foo', ['bar', 'baz'])
|
||||
.build(),
|
||||
Q(
|
||||
Q.match('foo', ['bar', 'baz'])
|
||||
)
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('matchPhrase', t => {
|
||||
t.deepEqual(F()
|
||||
.matchPhrase('foo', 'bar')
|
||||
.build(),
|
||||
Q(Q.matchPhrase('foo', 'bar'))
|
||||
t.deepEqual(
|
||||
F()
|
||||
.matchPhrase('foo', 'bar')
|
||||
.build(),
|
||||
Q(Q.matchPhrase('foo', 'bar'))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('matchPhrasePrefix', t => {
|
||||
t.deepEqual(F()
|
||||
.matchPhrasePrefix('foo', 'bar')
|
||||
.build(),
|
||||
Q(Q.matchPhrasePrefix('foo', 'bar'))
|
||||
t.deepEqual(
|
||||
F()
|
||||
.matchPhrasePrefix('foo', 'bar')
|
||||
.build(),
|
||||
Q(Q.matchPhrasePrefix('foo', 'bar'))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('multiMatch', t => {
|
||||
t.deepEqual(F()
|
||||
.multiMatch(['foo1', 'foo2'], 'bar')
|
||||
.build(),
|
||||
Q(Q.multiMatch(['foo1', 'foo2'], 'bar'))
|
||||
t.deepEqual(
|
||||
F()
|
||||
.multiMatch(['foo1', 'foo2'], 'bar')
|
||||
.build(),
|
||||
Q(Q.multiMatch(['foo1', 'foo2'], 'bar'))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('matchAll', t => {
|
||||
t.deepEqual(F()
|
||||
.matchAll()
|
||||
.build(),
|
||||
Q(Q.matchAll())
|
||||
t.deepEqual(
|
||||
F()
|
||||
.matchAll()
|
||||
.build(),
|
||||
Q(Q.matchAll())
|
||||
)
|
||||
|
||||
t.deepEqual(F()
|
||||
.matchAll({ boost: 1 })
|
||||
.build(),
|
||||
Q(Q.matchAll({ boost: 1 }))
|
||||
t.deepEqual(
|
||||
F()
|
||||
.matchAll({ boost: 1 })
|
||||
.build(),
|
||||
Q(Q.matchAll({ boost: 1 }))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('matchNone', t => {
|
||||
t.deepEqual(F()
|
||||
.matchNone()
|
||||
.build(),
|
||||
Q(Q.matchNone())
|
||||
t.deepEqual(
|
||||
F()
|
||||
.matchNone()
|
||||
.build(),
|
||||
Q(Q.matchNone())
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('common', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.common('key', 'val')
|
||||
.build(),
|
||||
Q(Q.common('key', 'val'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.common('key', 'val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.common('key', 'val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.common('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.common('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('queryString', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.queryString('val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.queryString('val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('simpleQueryString', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.simpleQueryString('val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.simpleQueryString('val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('term', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.term('key', 'val')
|
||||
.build(),
|
||||
Q(Q.term('key', 'val'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.term('key', 'val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.term('key', 'val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.term('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.term('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('terms', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.terms('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.terms('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.terms('key', ['val1', 'val2'], { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.terms('key', ['val1', 'val2'], { boost: 1 }))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('termsSet', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.termsSet('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.termsSet('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.termsSet('key', ['val1', 'val2'], { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.termsSet('key', ['val1', 'val2'], { boost: 1 }))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('range', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.range('key', { gt: 10 })
|
||||
.build(),
|
||||
Q(Q.range('key', { gt: 10 }))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('exists', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.exists('key')
|
||||
.build(),
|
||||
Q(Q.exists('key'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.exists(['key1', 'key2'])
|
||||
.build(),
|
||||
Q(Q.exists(['key1', 'key2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('prefix', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.prefix('key', 'val')
|
||||
.build(),
|
||||
Q(Q.prefix('key', 'val'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.prefix('key', 'val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.prefix('key', 'val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.prefix('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.prefix('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('wildcard', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.wildcard('key', 'val')
|
||||
.build(),
|
||||
Q(Q.wildcard('key', 'val'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.wildcard('key', 'val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.wildcard('key', 'val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.wildcard('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.wildcard('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('regexp', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.regexp('key', 'val')
|
||||
.build(),
|
||||
Q(Q.regexp('key', 'val'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.regexp('key', 'val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.regexp('key', 'val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.regexp('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.regexp('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('fuzzy', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.fuzzy('key', 'val')
|
||||
.build(),
|
||||
Q(Q.fuzzy('key', 'val'))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.fuzzy('key', 'val', { boost: 1 })
|
||||
.build(),
|
||||
Q(Q.fuzzy('key', 'val', { boost: 1 }))
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
F()
|
||||
.fuzzy('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.fuzzy('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('ids', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.ids('key', ['val1', 'val2'])
|
||||
.build(),
|
||||
Q(Q.ids('key', ['val1', 'val2']))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('minShouldMatch', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.minShouldMatch(42)
|
||||
.build(),
|
||||
Q(Q.minShouldMatch(42))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('name', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.name('test')
|
||||
.build(),
|
||||
Q(Q.name('test'))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('size', t => {
|
||||
t.deepEqual(
|
||||
F()
|
||||
.size(42)
|
||||
.build(),
|
||||
Q(Q.size(42))
|
||||
)
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('must', t => {
|
||||
const q1 = F().must(
|
||||
F().match('foo', 'bar'),
|
||||
F().term('hello', 'world'),
|
||||
F().should(
|
||||
F().match('one', 'two').match('three', 'four')
|
||||
),
|
||||
F().match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
const q2 = Q.must(
|
||||
Q.match('foo', 'bar'),
|
||||
Q.term('hello', 'world'),
|
||||
Q.should(
|
||||
Q.match('one', 'two'),
|
||||
Q.match('three', 'four')
|
||||
),
|
||||
Q.match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
t.deepEqual(q1.buildQuery(), Q.bool(q2))
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('should', t => {
|
||||
const q1 = F().should(
|
||||
F().match('foo', 'bar'),
|
||||
F().term('hello', 'world'),
|
||||
F().must(
|
||||
F().match('one', 'two').match('three', 'four')
|
||||
),
|
||||
F().match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
const q2 = Q.should(
|
||||
Q.match('foo', 'bar'),
|
||||
Q.term('hello', 'world'),
|
||||
Q.must(
|
||||
Q.match('one', 'two'),
|
||||
Q.match('three', 'four')
|
||||
),
|
||||
Q.match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
t.deepEqual(q1.buildQuery(), Q.bool(q2))
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('mustNot', t => {
|
||||
const q1 = F().mustNot(
|
||||
F().match('foo', 'bar'),
|
||||
F().term('hello', 'world'),
|
||||
F().should(
|
||||
F().match('one', 'two').match('three', 'four')
|
||||
),
|
||||
F().match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
const q2 = Q.mustNot(
|
||||
Q.match('foo', 'bar'),
|
||||
Q.term('hello', 'world'),
|
||||
Q.should(
|
||||
Q.match('one', 'two'),
|
||||
Q.match('three', 'four')
|
||||
),
|
||||
Q.match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
t.deepEqual(q1.buildQuery(), Q.bool(q2))
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('filter', t => {
|
||||
const q1 = F().filter(
|
||||
F().match('foo', 'bar'),
|
||||
F().term('hello', 'world'),
|
||||
F().should(
|
||||
F().match('one', 'two').match('three', 'four')
|
||||
),
|
||||
F().match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
const q2 = Q.filter(
|
||||
Q.match('foo', 'bar'),
|
||||
Q.term('hello', 'world'),
|
||||
Q.should(
|
||||
Q.match('one', 'two'),
|
||||
Q.match('three', 'four')
|
||||
),
|
||||
Q.match('faz', ['baz', 'zaz'])
|
||||
)
|
||||
|
||||
t.deepEqual(q1.buildQuery(), Q.bool(q2))
|
||||
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('and', t => {
|
||||
const q1 = F()
|
||||
.match('foo', 'bar')
|
||||
.match('foo', 'baz')
|
||||
|
||||
const q2 = F()
|
||||
.should(
|
||||
F()
|
||||
.term('foo', 'bar')
|
||||
.term('foo', 'baz')
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
q1.clone().and(q2).buildQuery(),
|
||||
Q.and(q1.buildQuery(), q2.buildQuery())
|
||||
)
|
||||
|
||||
const q3 = F()
|
||||
.match('foo', 'bar')
|
||||
.match('foo', 'baz')
|
||||
.sort('foo')
|
||||
|
||||
const q4 = F()
|
||||
.should(
|
||||
F()
|
||||
.term('foo', 'bar')
|
||||
.term('foo', 'baz')
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
q3.clone().and(q4).buildQuery(),
|
||||
Q.and(q3.buildQuery(), q4.buildQuery())
|
||||
)
|
||||
|
||||
t.end()
|
||||
|
||||
Reference in New Issue
Block a user