import { beforeEach, describe, expect, it } from 'bun:test';
import { RedisCache } from '../src/redis-cache';
import type { CacheOptions } from '../src/types';

describe('RedisCache Simple', () => {
  let cache: RedisCache;

  beforeEach(() => {
    const options: CacheOptions = {
      keyPrefix: 'test:',
      ttl: 3600,
      redisConfig: { host: 'localhost', port: 6379 },
    };
    cache = new RedisCache(options);
  });

  describe('Core functionality', () => {
    it('should create cache instance', () => {
      expect(cache).toBeDefined();
      expect(cache.isReady).toBeDefined();
      expect(cache.get).toBeDefined();
      expect(cache.set).toBeDefined();
    });

    it('should have stats tracking', () => {
      const stats = cache.getStats();
      expect(stats).toMatchObject({
        hits: 0,
        misses: 0,
        errors: 0,
        hitRate: 0,
        total: 0,
      });
      expect(stats.uptime).toBeGreaterThanOrEqual(0);
    });
  });
});
