import { describe, expect, it } from 'vitest'; import { contentDisposition } from './content-disposition.js'; describe('contentDisposition', () => { it('encodes a plain ASCII name', () => { expect(contentDisposition('attachment', 'report.pdf')).toBe( `attachment; filename="report.pdf"; filename*=UTF-8''report.pdf`, ); }); it('encodes cyrillic with an ASCII fallback', () => { expect(contentDisposition('inline', 'Отчёт.png')).toBe( `inline; filename="_____.png"; filename*=UTF-8''%D0%9E%D1%82%D1%87%D1%91%D1%82.png`, ); }); it('escapes quotes and RFC 5987 special characters', () => { expect(contentDisposition('attachment', `a"b'(c).txt`)).toBe( `attachment; filename="a_b'(c).txt"; filename*=UTF-8''a%22b%27%28c%29.txt`, ); }); });