import { describe, expect, it } from 'vitest';
import { isBrandingAllowed, isWatermarkAllowed, isWatermarkRemovalAllowed } from '../events';

describe('event branding access helpers', () => {
  it('respects package-level disallow', () => {
    const event = {
      settings: { branding_allowed: true, watermark_allowed: true },
      package: { branding_allowed: false, watermark_allowed: false },
    };

    expect(isBrandingAllowed(event as any)).toBe(false);
    expect(isWatermarkAllowed(event as any)).toBe(false);
  });

  it('uses settings when package allows', () => {
    const event = {
      settings: { branding_allowed: false, watermark_allowed: true },
      package: { branding_allowed: true, watermark_allowed: true },
    };

    expect(isBrandingAllowed(event as any)).toBe(false);
    expect(isWatermarkAllowed(event as any)).toBe(true);
  });

  it('defaults to allow when nothing is set', () => {
    expect(isBrandingAllowed({} as any)).toBe(true);
    expect(isWatermarkAllowed({} as any)).toBe(true);
    expect(isWatermarkRemovalAllowed({} as any)).toBe(false);
  });

  it('uses removal flag from settings', () => {
    const event = {
      settings: { watermark_removal_allowed: true },
    };

    expect(isWatermarkRemovalAllowed(event as any)).toBe(true);
  });
});
