taiko-storage
Version:
A taiko plugin to interact with browser storages (local and session)
138 lines (86 loc) • 2.7 kB
Markdown
<h1 align="center">
<img src="./assets/taiko-storage.png" alt="Taiko Storage">
<br>
</h1>
[](https://badge.fury.io/js/taiko-storage)
[](https://github.com/BugDiver/taiko-storage/actions)
# taiko-storage
A taiko plugin to interact with browser storages (localStorage and sessionStorage).
## Installation
- `npm install taiko-storage --save`
## Usage
```javascript
const { openBrowser, closeBrowser, click, storage: { localStorage, sessionStorage} } = require('taiko');
/*
OR
const { openBrowser, closeBrowser, click, storage } = require('taiko');
const {localStorage, sessionStorage} = storage;
*/
(async () => {
try {
await openBrowser();
await localStorage.setItem("Key", "Value");
let value = await localStorage.getItem("Key");
// more actions
// ...
} finally {
await closeBrowser();
}
})();
```
## APIs
The plugin exposes two variables `localStorage` and `sessionStorage` which represents to the respective storages.
The APIs for both the storage are same and try to very close the the native storage apis.
### `setItem(key, value)`
set the given key value to storage
```js
await localStorage.setItem(key, value);
// or
await sessionStorage.setItem(key, value);
```
### `getItem(key)`
featch the value for given key from storage
```js
await localStorage.getItem(key);
// or
await sessionStorage.getItem(key);
```
### `hasItem(key)`
validate if the given key exists in storage.
```js
await localStorage.hasItem(key);
// or
await sessionStorage.hasItem(key);
```
### `removeItem(key)`
remove the item with given key from the storage.
```js
await localStorage.removeItem(key);
// or
await sessionStorage.removeItem(key);
```
### `clear()`
clear the stoarage
```js
await localStorage.clear();
// or
await sessionStorage.clear();
```
### `length()`
tell the no of items in storage.
```js
await localStorage.length();
// or
await sessionStorage.length();
```
## Passing Taiko options to APIS,
* The API's allows to pass a optional argument `options` which will be passed to taiko's `evaluate` API (used internally in storage APIs)
Example:
```js
await localStorage.setItem(key, value, { waitForNavigation: false });
```
## Use in Taiko REPL
To launch the REPL type `taiko --plugin taiko-storage` in your favorite terminal application. This will launch the Taiko Prompt.
e.g
`Version: 0.7.0 (Chromium:74.0.3723.0) Type .api for help and .exit to quit`
You should now have full access to localStorage and sessionStorage apis in the taiko REPL window