From f8389ff8abccdf8e982e2ae2f5c075cb77409802 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 23 Sep 2024 14:07:40 +0300 Subject: [PATCH 1/3] feat: Implement datastore model tests --- packages/backend/src/models/datastore.test.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/backend/src/models/datastore.test.js diff --git a/packages/backend/src/models/datastore.test.js b/packages/backend/src/models/datastore.test.js new file mode 100644 index 00000000..cc5eda18 --- /dev/null +++ b/packages/backend/src/models/datastore.test.js @@ -0,0 +1,28 @@ +import { describe, it, expect } from 'vitest'; +import Datastore from './datastore'; + +describe('Datastore model', () => { + it('tableName should return correct name', () => { + expect(Datastore.tableName).toBe('datastore'); + }); + + it('jsonSchema should have the correct schema', () => { + const expectedSchema = { + type: 'object', + required: ['key', 'value', 'scope', 'scopeId'], + properties: { + id: { type: 'string', format: 'uuid' }, + key: { type: 'string', minLength: 1 }, + value: { type: 'string' }, + scope: { + type: 'string', + enum: ['flow'], + default: 'flow', + }, + scopeId: { type: 'string', format: 'uuid' }, + }, + }; + + expect(Datastore.jsonSchema).toStrictEqual(expectedSchema); + }); +}); From 9006a0c25f153241da5acc4c9b446dfceccc8698 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 23 Sep 2024 16:32:36 +0300 Subject: [PATCH 2/3] refactor: Update required validations with custom assertion --- packages/backend/src/models/datastore.js | 2 +- packages/backend/src/models/datastore.test.js | 22 ++++--------------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/packages/backend/src/models/datastore.js b/packages/backend/src/models/datastore.js index 015bb824..aad86de5 100644 --- a/packages/backend/src/models/datastore.js +++ b/packages/backend/src/models/datastore.js @@ -5,7 +5,7 @@ class Datastore extends Base { static jsonSchema = { type: 'object', - required: ['key', 'value', 'scope', 'scopeId'], + required: ['key', 'value', 'scopeId'], properties: { id: { type: 'string', format: 'uuid' }, diff --git a/packages/backend/src/models/datastore.test.js b/packages/backend/src/models/datastore.test.js index cc5eda18..85d8c62d 100644 --- a/packages/backend/src/models/datastore.test.js +++ b/packages/backend/src/models/datastore.test.js @@ -6,23 +6,9 @@ describe('Datastore model', () => { expect(Datastore.tableName).toBe('datastore'); }); - it('jsonSchema should have the correct schema', () => { - const expectedSchema = { - type: 'object', - required: ['key', 'value', 'scope', 'scopeId'], - properties: { - id: { type: 'string', format: 'uuid' }, - key: { type: 'string', minLength: 1 }, - value: { type: 'string' }, - scope: { - type: 'string', - enum: ['flow'], - default: 'flow', - }, - scopeId: { type: 'string', format: 'uuid' }, - }, - }; - - expect(Datastore.jsonSchema).toStrictEqual(expectedSchema); + it('jsonSchema should have correct validations', () => { + expect(Datastore).toRequireProperty('key'); + expect(Datastore).toRequireProperty('value'); + expect(Datastore).toRequireProperty('scopeId'); }); }); From 7abe44da198115741ff1b883b0208e4bf41ac133 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 30 Sep 2024 16:43:06 +0300 Subject: [PATCH 3/3] refactor: Use matchsnapshot for datastore tests --- .../__snapshots__/datastore.test.js.snap | 36 +++++++++++++++++++ packages/backend/src/models/datastore.test.js | 4 +-- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 packages/backend/src/models/__snapshots__/datastore.test.js.snap diff --git a/packages/backend/src/models/__snapshots__/datastore.test.js.snap b/packages/backend/src/models/__snapshots__/datastore.test.js.snap new file mode 100644 index 00000000..92eb3475 --- /dev/null +++ b/packages/backend/src/models/__snapshots__/datastore.test.js.snap @@ -0,0 +1,36 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Datastore model > jsonSchema should have correct validations 1`] = ` +{ + "properties": { + "id": { + "format": "uuid", + "type": "string", + }, + "key": { + "minLength": 1, + "type": "string", + }, + "scope": { + "default": "flow", + "enum": [ + "flow", + ], + "type": "string", + }, + "scopeId": { + "format": "uuid", + "type": "string", + }, + "value": { + "type": "string", + }, + }, + "required": [ + "key", + "value", + "scopeId", + ], + "type": "object", +} +`; diff --git a/packages/backend/src/models/datastore.test.js b/packages/backend/src/models/datastore.test.js index 85d8c62d..ba02e2f2 100644 --- a/packages/backend/src/models/datastore.test.js +++ b/packages/backend/src/models/datastore.test.js @@ -7,8 +7,6 @@ describe('Datastore model', () => { }); it('jsonSchema should have correct validations', () => { - expect(Datastore).toRequireProperty('key'); - expect(Datastore).toRequireProperty('value'); - expect(Datastore).toRequireProperty('scopeId'); + expect(Datastore.jsonSchema).toMatchSnapshot(); }); });