import { describe, it, expect } from 'vitest';
import { resolveUpstreamImageUrl } from './resolveInputs';
import type { BoxNodeData } from '../types';

const base: BoxNodeData = { mode: 'i2v', model: 'm', params: {}, mediaInputs: [], status: 'done' };

describe('resolveUpstreamImageUrl', () => {
  it('returns the image url for an image node', () => {
    expect(resolveUpstreamImageUrl({ ...base, output: { type: 'image', url: 'https://x/i.jpg' } })).toBe('https://x/i.jpg');
  });

  it('returns the extracted last frame for a video node', () => {
    expect(resolveUpstreamImageUrl({ ...base, output: { type: 'video', url: 'https://x/v.mp4', lastFrameUrl: 'https://x/f.jpg' } })).toBe('https://x/f.jpg');
  });

  it('returns undefined for a video node with no extracted frame yet', () => {
    expect(resolveUpstreamImageUrl({ ...base, output: { type: 'video', url: 'https://x/v.mp4' } })).toBeUndefined();
  });

  it('returns undefined when there is no output', () => {
    expect(resolveUpstreamImageUrl(base)).toBeUndefined();
  });
});
