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

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

  it('should fail when not logged in', async () => {
    expect(dataProvider.delete('entities/category', { id: 0 })).rejects.toThrow('iam.error.unauthorized');
  });

  it('should success with valid data', async () => {
    await authProvider.login({ username: USERNAME, password: PASSWORD });
    const category = {
      description: { it: createRandomString(10) }
    };
    const { data } = await dataProvider.create('entities/category', {
      data: category
    });
    expect(data).toBeDefined();
    expect(data?.id).toBeDefined();
    expect(data?.description?.it).toBe(category.description?.it);

    const { data: entity } = await dataProvider.getOne('entities/category', { id: data?.id });
    expect(entity).toBeDefined();

    const deleted = await dataProvider.delete('entities/category', { id: data?.id });
    expect(deleted).toBeDefined();

    expect(dataProvider.getOne('entities/category', { id: data?.id })).rejects.toThrow('error.not_found');
  });
});
