Home Reference Source Test

test/backend/leveldb/utils/LevelDBTools.spec.js

describe('LevelDBTools', () => {

    it('correctly converts exact queries', () => {
        const q = LevelDBTools.convertKeyRange(KeyRange.only(3));
        expect(q).toEqual({
            'gte': 3,
            'lte': 3
        });
    });

    it('correctly converts lower bounds', () => {
        let q = LevelDBTools.convertKeyRange(KeyRange.lowerBound(5, false));
        expect(q).toEqual({
            'gte': 5
        });
        q = LevelDBTools.convertKeyRange(KeyRange.lowerBound(3, true));
        expect(q).toEqual({
            'gt': 3
        });
    });

    it('correctly converts upper bounds', () => {
        let q = LevelDBTools.convertKeyRange(KeyRange.upperBound(5, false));
        expect(q).toEqual({
            'lte': 5
        });
        q = LevelDBTools.convertKeyRange(KeyRange.upperBound(3, true));
        expect(q).toEqual({
            'lt': 3
        });
    });

    it('correctly converts range queries', () => {
        let q = LevelDBTools.convertKeyRange(KeyRange.bound(2, 5, false, false));
        expect(q).toEqual({
            'gte': 2,
            'lte': 5
        });
        q = LevelDBTools.convertKeyRange(KeyRange.bound(2, 5, true, false));
        expect(q).toEqual({
            'gt': 2,
            'lte': 5
        });
        q = LevelDBTools.convertKeyRange(KeyRange.bound(2, 5, false, true));
        expect(q).toEqual({
            'gte': 2,
            'lt': 5
        });
        q = LevelDBTools.convertKeyRange(KeyRange.bound(2, 5, true, true));
        expect(q).toEqual({
            'gt': 2,
            'lt': 5
        });
    });
});