import { describe, it, expect } from 'vitest'; import { machineRemoteData } from './machine-remote-data'; import { loading, success } from '../testing/remote-data'; describe('machineRemoteData', () => { it('maps loading → Loading', () => { expect(machineRemoteData({ tag: 'loading' })).toEqual(loading()); }); it('maps failed → Failure carrying an Error with the reason', () => { const rd = machineRemoteData({ tag: 'failed', reason: 'boom' }); expect(rd.tag).toBe('Failure'); if (rd.tag === 'Failure') expect(rd.error.message).toBe('boom'); }); it('maps loaded → Success carrying the whole loaded state', () => { const loaded = { tag: 'loaded', foo: 42 } as const; expect(machineRemoteData(loaded)).toEqual(success(loaded)); }); });