mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-15 20:17:22 +00:00
Reworked `ensureEntity` to replace entities while maintaining their configuration and allowing type adjustments. Updated tests to verify type persistence and synchronization of entity properties.
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { createApp, registries } from "../../src";
|
|
import { em, entity, text } from "../../src/data";
|
|
import { StorageLocalAdapter } from "../../src/media/storage/adapters/StorageLocalAdapter";
|
|
import { AppMedia } from "../../src/modules";
|
|
import { moduleTestSuite } from "./module-test-suite";
|
|
|
|
describe("AppMedia", () => {
|
|
moduleTestSuite(AppMedia);
|
|
|
|
test("should allow additional fields", async () => {
|
|
registries.media.register("local", StorageLocalAdapter);
|
|
|
|
const app = createApp({
|
|
initialConfig: {
|
|
media: {
|
|
entity_name: "media",
|
|
enabled: true,
|
|
adapter: {
|
|
type: "local",
|
|
config: {
|
|
path: "./"
|
|
}
|
|
}
|
|
},
|
|
data: em({
|
|
media: entity("media", {
|
|
additional: text()
|
|
})
|
|
}).toJSON()
|
|
}
|
|
});
|
|
|
|
await app.build();
|
|
|
|
const e = app.modules.em.entity("media");
|
|
const fields = e.fields.map((f) => f.name);
|
|
expect(e.type).toBe("system");
|
|
expect(fields).toContain("additional");
|
|
expect(fields).toEqual([
|
|
"id",
|
|
"path",
|
|
"folder",
|
|
"mime_type",
|
|
"size",
|
|
"scope",
|
|
"etag",
|
|
"modified_at",
|
|
"reference",
|
|
"entity_id",
|
|
"metadata",
|
|
"additional"
|
|
]);
|
|
});
|
|
});
|