UNPKG

@applica-software-guru/crud-client

Version:

Libreria per l'accesso ai servizi REST di Applica.

70 lines (59 loc) 2.27 kB
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); }); });