tsironis/lockr

View on GitHub
test/sets.test.ts

Summary

Maintainability
A
0 mins
Test Coverage
import sadd from '../src/sadd';
import sismember from '../src/sismember';
import smembers from '../src/smembers';
import srem from '../src/srem';

describe('Sets', function() {
  beforeEach(function() {
    sadd('test_set', 1);
    sadd('test_set', 2);
  });

  describe('Lockr#sadd', function() {
    it('saves a set under the given key in the localStorage', function() {
      sadd('a_set', 1);
      sadd('a_set', 2);

      expect(localStorage.getItem('a_set')).toEqual('{"data":[1,2]}');
    });

    it('does not add the same value again', function() {
      sadd('test_set', 1);
      sadd('test_set', 2);
      sadd('test_set', 1);

      expect(smembers('test_set')).toEqual([1, 2]);
    });
  });

  describe('Lockr#smembers', function() {
    it('returns all the values for given key', function() {
      expect(smembers('test_set')).toEqual([1, 2]);
    });
  });

  describe('Lockr#sismember', function() {
    it('returns true if the value exists in the given set(key)', function() {
      expect(sismember('test_set', 1)).toEqual(true);
      expect(sismember('test_set', 34)).toEqual(false);
    });
  });

  describe('Lockr#srem', function() {
    it('removes value from collection if exists', function() {
      srem('test_set', 1);
      expect(sismember('test_set', 1)).toEqual(false);
    });
  });
});