import { describe, it, expect } from 'vitest';
import {
  StorageLocation,
  ItemStatus,
  FreshnessUrgency,
  FreshnessSource,
  FreshnessRuleSource,
} from './pantry.enums.js';

describe('Pantry Enums', () => {
  describe('StorageLocation', () => {
    it('has all expected values', () => {
      expect(Object.values(StorageLocation)).toEqual(['pantry', 'fridge', 'freezer', 'counter']);
    });
  });

  describe('ItemStatus', () => {
    it('has all expected values', () => {
      expect(Object.values(ItemStatus)).toEqual([
        'sealed',
        'opened',
        'prepared',
        'consumed',
        'discarded',
        'expired',
      ]);
    });
  });

  describe('FreshnessUrgency', () => {
    it('has all expected values', () => {
      expect(Object.values(FreshnessUrgency)).toEqual([
        'fresh',
        'use_soon',
        'urgent',
        'check',
        'expired',
      ]);
    });
  });

  describe('FreshnessSource', () => {
    it('has all expected values', () => {
      expect(Object.values(FreshnessSource)).toEqual(['packaging', 'rule', 'manual']);
    });
  });

  describe('FreshnessRuleSource', () => {
    it('has all expected values', () => {
      expect(Object.values(FreshnessRuleSource)).toEqual(['system', 'household']);
    });
  });
});
