/* global it, describe, afterEach */ var assert = require('assert'); var winston = require('winston'); winston.remove(winston.transports.Console); var RedisDocumentStore = require('../lib/document_stores/redis'); RedisDocumentStore.client.ttl('hello1', function(err, res) { if (err) { console.error("Redis TTL Error:", err); done(err); // This will fail the test and show the error } else { assert.ok(res > 1); done(); } }); describe('redis_document_store', function() { beforeEach(function(done) { // Initialize or reconnect to Redis here // Include any connection or retry logic here // Call done() once the connection is established done(); }); afterEach(function() { if (RedisDocumentStore.client) { RedisDocumentStore.client.quit(); RedisDocumentStore.client = false; } }); describe('set', function() { it('should be able to set a key and have an expiration set', function(done) { var store = new RedisDocumentStore({ expire: 10 }); store.set('hello1', 'world', function() { RedisDocumentStore.client.ttl('hello1', function(err, res) { assert.ok(res > 1); done(); }); }); }); it('should not set an expiration when told not to', function(done) { var store = new RedisDocumentStore({ expire: 10 }); store.set('hello2', 'world', function() { RedisDocumentStore.client.ttl('hello2', function(err, res) { assert.equal(-1, res); done(); }); }, true); }); it('should not set an expiration when expiration is off', function(done) { var store = new RedisDocumentStore({ expire: false }); store.set('hello3', 'world', function() { RedisDocumentStore.client.ttl('hello3', function(err, res) { assert.equal(-1, res); done(); }); }); }); }); });