[fabric/sqlite-store] Add null handling for value conversion and update tests for deletedAt field
This commit is contained in:
parent
6a0be50ef7
commit
c9a061419c
@ -14,6 +14,9 @@ export function transformRow(model: Collection) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function valueFromSQL(field: FieldDefinition, value: any): any {
|
function valueFromSQL(field: FieldDefinition, value: any): any {
|
||||||
|
if (value === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
const r = FieldSQLInsertMap[field[VariantTag]];
|
const r = FieldSQLInsertMap[field[VariantTag]];
|
||||||
return r(field as any, value);
|
return r(field as any, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,9 @@ const FieldSQLInsertMap: FieldSQLInsertMap = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function fieldValueToSQL(field: FieldDefinition, value: any) {
|
export function fieldValueToSQL(field: FieldDefinition, value: any) {
|
||||||
|
if (value === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
const r = FieldSQLInsertMap[field[VariantTag]] as any;
|
const r = FieldSQLInsertMap[field[VariantTag]] as any;
|
||||||
return r(field as any, value);
|
return r(field as any, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { Run } from "@fabric/core";
|
import { PosixDate, Run } from "@fabric/core";
|
||||||
import { defineModel, Field, isLike, UUID } from "@fabric/domain";
|
import { defineModel, Field, isLike, UUID } from "@fabric/domain";
|
||||||
import { UUIDGeneratorMock } from "@fabric/domain/mocks";
|
import { UUIDGeneratorMock } from "@fabric/domain/mocks";
|
||||||
import {
|
import {
|
||||||
@ -42,6 +42,7 @@ describe("State Store", () => {
|
|||||||
name: "test",
|
name: "test",
|
||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -55,6 +56,7 @@ describe("State Store", () => {
|
|||||||
id: newUUID,
|
id: newUUID,
|
||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -66,6 +68,7 @@ describe("State Store", () => {
|
|||||||
streamId: UUID;
|
streamId: UUID;
|
||||||
streamVersion: bigint;
|
streamVersion: bigint;
|
||||||
name: string;
|
name: string;
|
||||||
|
deletedAt: PosixDate | null;
|
||||||
}[]
|
}[]
|
||||||
>();
|
>();
|
||||||
|
|
||||||
@ -75,6 +78,7 @@ describe("State Store", () => {
|
|||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
name: "test",
|
name: "test",
|
||||||
|
deletedAt: null,
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
@ -89,6 +93,7 @@ describe("State Store", () => {
|
|||||||
id: newUUID,
|
id: newUUID,
|
||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
() =>
|
() =>
|
||||||
store.insertInto("users", {
|
store.insertInto("users", {
|
||||||
@ -96,6 +101,7 @@ describe("State Store", () => {
|
|||||||
id: UUIDGeneratorMock.generate(),
|
id: UUIDGeneratorMock.generate(),
|
||||||
streamId: UUIDGeneratorMock.generate(),
|
streamId: UUIDGeneratorMock.generate(),
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
() =>
|
() =>
|
||||||
store.insertInto("users", {
|
store.insertInto("users", {
|
||||||
@ -103,6 +109,7 @@ describe("State Store", () => {
|
|||||||
id: UUIDGeneratorMock.generate(),
|
id: UUIDGeneratorMock.generate(),
|
||||||
streamId: UUIDGeneratorMock.generate(),
|
streamId: UUIDGeneratorMock.generate(),
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -121,6 +128,7 @@ describe("State Store", () => {
|
|||||||
streamId: UUID;
|
streamId: UUID;
|
||||||
streamVersion: bigint;
|
streamVersion: bigint;
|
||||||
name: string;
|
name: string;
|
||||||
|
deletedAt: PosixDate | null;
|
||||||
}[]
|
}[]
|
||||||
>();
|
>();
|
||||||
|
|
||||||
@ -130,6 +138,7 @@ describe("State Store", () => {
|
|||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
name: "test",
|
name: "test",
|
||||||
|
deletedAt: null,
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
@ -143,6 +152,7 @@ describe("State Store", () => {
|
|||||||
id: newUUID,
|
id: newUUID,
|
||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -161,6 +171,7 @@ describe("State Store", () => {
|
|||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
name: "updated",
|
name: "updated",
|
||||||
|
deletedAt: null,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -173,6 +184,7 @@ describe("State Store", () => {
|
|||||||
id: newUUID,
|
id: newUUID,
|
||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -197,6 +209,7 @@ describe("State Store", () => {
|
|||||||
name: "test",
|
name: "test",
|
||||||
streamId: ownerUUID,
|
streamId: ownerUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -207,6 +220,7 @@ describe("State Store", () => {
|
|||||||
owner: ownerUUID,
|
owner: ownerUUID,
|
||||||
streamId: newUUID,
|
streamId: newUUID,
|
||||||
streamVersion: 1n,
|
streamVersion: 1n,
|
||||||
|
deletedAt: null,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user