import { getMockTripCards, mockApiResults } from '../mockData'; describe('mockData', () => { describe('mockApiResults', () => { it('contains 6 cruise results', () => { expect(mockApiResults).toHaveLength(6); }); it('each result has required fields', () => { mockApiResults.forEach(result => { expect(result).toHaveProperty('cruise_id'); expect(result).toHaveProperty('cruise_title'); expect(result).toHaveProperty('cruise_line'); expect(result).toHaveProperty('ship'); expect(result).toHaveProperty('prices'); expect(result).toHaveProperty('was_prices'); expect(result).toHaveProperty('extras'); }); }); it('extras object contains required fields', () => { mockApiResults.forEach(result => { expect(result.extras).toHaveProperty('date'); expect(result.extras).toHaveProperty('duration'); expect(result.extras).toHaveProperty('destination'); expect(result.extras).toHaveProperty('info'); }); }); }); describe('getMockTripCards', () => { it('returns all transformed cards when no count specified', () => { const cards = getMockTripCards(); expect(cards).toHaveLength(6); }); it('returns specified number of cards', () => { const cards = getMockTripCards(3); expect(cards).toHaveLength(3); }); it('returns transformed TripCardApiData objects', () => { const cards = getMockTripCards(1); expect(cards[0]).toHaveProperty('cruise_id'); expect(cards[0]).toHaveProperty('image'); expect(cards[0]).toHaveProperty('headline'); expect(cards[0]).toHaveProperty('date'); expect(cards[0]).toHaveProperty('duration'); expect(cards[0]).toHaveProperty('destination'); expect(cards[0]).toHaveProperty('ship'); expect(cards[0]).toHaveProperty('price'); expect(cards[0]).toHaveProperty('logo'); expect(cards[0]).toHaveProperty('logo_url'); expect(cards[0]).toHaveProperty('cta_url'); expect(cards[0]).toHaveProperty('cta_text'); }); it('cruise_id is converted to string', () => { const cards = getMockTripCards(1); expect(typeof cards[0].cruise_id).toBe('string'); }); }); });