import { PASSWORD, USERNAME, createProviders } from './config';
import { describe, expect, it } from 'vitest';

describe('test get', async () => {
  const { dataProvider, authProvider } = createProviders();

  it('should fail when not logged in', async () => {
    expect(dataProvider.get('verbs/get', {})).rejects.toThrow('iam.error.forbidden');
  });

  it('should get', async () => {
    await authProvider.login({ username: USERNAME, password: PASSWORD });

    const { data } = await dataProvider.get('verbs/get', { param1: 'a', param2: 'b' });

    expect(data?.value).toBeDefined();
    expect(data?.value?.length).toBeGreaterThan(0);

    expect(data?.value).toContain('a');
    expect(data?.value).toContain('b');
  });

  it('should post', async () => {
    await authProvider.login({ username: USERNAME, password: PASSWORD });

    const { data } = await dataProvider.post('verbs/post', { param1: 'a', param2: 'b' });

    expect(data?.value).toBeDefined();
    expect(data?.value?.length).toBeGreaterThan(0);

    expect(data?.value).toContain('a');
    expect(data?.value).toContain('b');
  });
});
