import { describe, expect, test } from 'vitest' import { htmlToMetaTags, parseButtons, parseProperties, validateButtons, } from './utils.js' const html = ` ` const selector = 'meta[property^="fc:"], meta[property^="og:"]' const metaTags = htmlToMetaTags(html, selector) test('htmlToMetaTags', () => { const html = ` foo bar ` expect(htmlToMetaTags(html, selector).length).toEqual(2) }) test('parseFrameProperties', () => { const frameProperties = parseProperties(metaTags) expect(frameProperties).toEqual({ image: 'https://example.com/og', imageAspectRatio: '1.91:1', imageUrl: 'http://example.com/image', input: undefined, postUrl: 'http://localhost:3001', title: '', version: 'vNext', }) }) describe('parseFrameButtons', () => { test('default', () => { const buttons = parseButtons(metaTags) expect(buttons).toEqual([ { title: 'foo', index: 1, type: 'post', }, { title: 'bar', index: 2, target: 'https://example.com', type: 'link', }, { title: 'baz', index: 3, target: 'https://example.com/redirect', type: 'post_redirect', }, { title: 'mint', index: 4, target: 'eip155:7777777:0x060f3edd18c47f59bd23d063bbeb9aa4a8fec6df', type: 'mint', }, ]) }) }) describe('validateFrameButtons', () => { test('default', () => { const buttons = parseButtons(metaTags) const result = validateButtons(buttons) expect(result).toEqual({ buttonsAreOutOfOrder: false, invalidButtons: [], }) }) test('missing buttons', () => { const html = ` ` const metaTags = htmlToMetaTags(html, selector) const buttons = parseButtons(metaTags) const result = validateButtons(buttons) expect(result).toEqual({ buttonsAreOutOfOrder: true, invalidButtons: [], }) }) test('missing buttons', () => { const html = ` ` const metaTags = htmlToMetaTags(html, selector) const buttons = parseButtons(metaTags) const result = validateButtons(buttons) expect(result).toEqual({ buttonsAreOutOfOrder: true, invalidButtons: [], }) }) })