All Projects → Level → level-test

Level / level-test

Licence: MIT License
Inject temporary and isolated level stores (leveldown, level-js, memdown or custom) into your tests.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to level-test

Level
Fast & simple storage. A Node.js-style LevelDB wrapper for Node.js, Electron and browsers.
Stars: ✭ 1,071 (+5536.84%)
Mutual labels:  level, leveldb
Levelup
A wrapper for abstract-leveldown compliant stores, for Node.js and browsers.
Stars: ✭ 3,960 (+20742.11%)
Mutual labels:  level, leveldb
level-hyper
A convenience package bundling levelup and leveldown-hyper.
Stars: ✭ 29 (+52.63%)
Mutual labels:  leveldb, level-packager
Awesome
An open list of awesome Level modules and resources.
Stars: ✭ 204 (+973.68%)
Mutual labels:  level, leveldb
Party
Open a leveldb handle multiple times
Stars: ✭ 132 (+594.74%)
Mutual labels:  level, leveldb
Electron Demo
Demo app loading LevelDB into an Electron context.
Stars: ✭ 79 (+315.79%)
Mutual labels:  level, leveldb
mem
A convenience package bundling levelup and memdown.
Stars: ✭ 23 (+21.05%)
Mutual labels:  level, level-packager
Level Rocksdb
A convenience package bundling levelup and rocksdb.
Stars: ✭ 120 (+531.58%)
Mutual labels:  level, leveldb
Rocksdb
Pure C++ Node.js RocksDB binding. An abstract-leveldown compliant store.
Stars: ✭ 138 (+626.32%)
Mutual labels:  level, leveldb
drevops
💧 + 🐳 + ✓✓✓ + 🤖 + ❤️ Build, Test, Deploy scripts for Drupal using Docker and CI/CD
Stars: ✭ 55 (+189.47%)
Mutual labels:  tooling, test
WhatTheStack
See a pretty error screen when your Android app crashes
Stars: ✭ 240 (+1163.16%)
Mutual labels:  tooling
ngx-zombie-compiler
Fast JiT compiler for Angular testing
Stars: ✭ 15 (-21.05%)
Mutual labels:  test
lerna-cola
Superpowers for your Lerna monorepos.
Stars: ✭ 23 (+21.05%)
Mutual labels:  tooling
kotest-gradle-plugin
A gradle plugin for Kotest
Stars: ✭ 18 (-5.26%)
Mutual labels:  test
brutal
A code-first approach to automate the writing of unit tests.
Stars: ✭ 54 (+184.21%)
Mutual labels:  test
svn2git
Tool to help and automate migration from SVN to GitLab
Stars: ✭ 34 (+78.95%)
Mutual labels:  tooling
system-checks
⚙ Checks and shows Linux system info - Distro name, IP, running processes and etc. Official site - system-checks.org
Stars: ✭ 35 (+84.21%)
Mutual labels:  test
twilio mock
Mock Twilio gem for Ruby
Stars: ✭ 26 (+36.84%)
Mutual labels:  test
google-datastore-emulator
Google Datastore Emulator wrapper to nodejs
Stars: ✭ 17 (-10.53%)
Mutual labels:  test
travis-minikube
Run minikube on Travis CI
Stars: ✭ 89 (+368.42%)
Mutual labels:  test

level-test

Inject temporary and isolated level stores (leveldown, level-js, memdown or custom) into your tests.

level badge npm Node version Test codecov JavaScript Style Guide Funding

If you are upgrading: please see UPGRADING.md.

Usage

Create a fresh db, without refering to any file system or DOM specifics, so that the same test can be used in the server or the browser! Use whatever test framework you like.

const level = require('level-test')()
const db = level({ valueEncoding: 'json' })

In node it defaults to leveldown for storage, using a unique temporary directory. In the browser it defaults to level-js.

No database name is needed since level-test generates unique random names. For disk-based systems it uses tempy and in the browser it uses uuid/v4.

const level = require('level-test')()
const db = level()

In either environment use of memdown can be forced with options.mem:

const level = require('level-test')({ mem: true })
const db = level({ valueEncoding: 'json' })

Or use any abstract-leveldown compliant store! In this case level-test assumes the storage is on disk and will thus create a unique temporary directory, unless you pass mem: true.

const rocksdb = require('rocksdb')
const level = require('level-test')(rocksdb)
const db = level({ valueEncoding: 'json' })

API

ctor = levelTest([store][, options])

Returns a function ctor that creates preconfigured levelup instances with temporary storage. The store if provided must be a function and abstract-leveldown compliant. Options:

  • mem: use memdown as store (or assume that store is memdown), default false.
  • Any other option will be merged into ctor options, the latter taking precedence.

These are equal:

const db1 = require('level-test')({ valueEncoding: 'json' })()
const db2 = require('level-test')()({ valueEncoding: 'json' })

db = ctor([options][, callback])

Returns a levelup instance via level-packager which wraps the underlying store with encoding-down. In short: the db is functionally equivalent to level. You get deferred open, encodings, Promise support, readable streams and more!

Options are passed to levelup (which in turn passes them on to the store when opened) as well as encoding-down.

Please refer to the levelup documentation for usage of the optional callback.

Contributing

Level/level-test is an OPEN Open Source Project. This means that:

Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.

See the Contribution Guide for more details.

Donate

Support us with a monthly donation on Open Collective and help us continue our work. Your logo or avatar will be displayed on our 28+ GitHub repositories and npm packages. 💖

Active financial contributors

Open Collective backers Open Collective sponsors

Past financial contributors

Open Collective sponsors Open Collective backers

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].