mirror of
https://github.com/bknd-io/bknd/
synced 2026-08-02 16:16:02 +00:00
e94e8d8bd1
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"
|
|
]);
|
|
});
|
|
});
|