@applica-software-guru/crud-client
Version:
Libreria per l'accesso ai servizi REST di Applica.
70 lines (59 loc) • 2.27 kB
text/typescript
import { PASSWORD, USERNAME, createProviders, createRandomString } from './config';
import { describe, expect, it } from 'vitest';
describe('test update', async () => {
const { dataProvider, authProvider } = createProviders();
it('should fail when not logged in', async () => {
expect(dataProvider.update('entities/category', { id: 1, data: {}, previousData: {} })).rejects.toThrow(
'iam.error.unauthorized'
);
});
it('should fail with validation errors', async () => {
await authProvider.login({ username: USERNAME, password: PASSWORD });
const category = {
description: { it: createRandomString(10) }
};
const createRequest = await dataProvider.create('entities/category', { data: category });
expect(createRequest.data).toBeDefined();
expect(createRequest.data?.id).toBeDefined();
expect(
dataProvider.update('entities/category', {
id: createRequest.data?.id,
data: {},
previousData: {}
})
).rejects.toThrow('error.validation');
dataProvider
.update('entities/category', { id: createRequest.data?.id, data: {}, previousData: {} })
.catch((error: any) => {
expect(error).toBeDefined();
const body = error?.body;
expect(body).toBeDefined();
expect(body?.errors).toBeDefined();
expect(body?.errors?.description).toBeDefined();
});
});
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 updatedCategory = {
...data,
description: { it: createRandomString(10) }
};
const { data: updated } = await dataProvider.update('entities/category', {
id: data?.id,
data: updatedCategory,
previousData: data
});
expect(updated).toBeDefined();
expect(updated?.id).toBeDefined();
expect(updated?.description?.it).toBe(updatedCategory.description?.it);
});
});