@jrmc/adonis-attachment 6.0.0-alpha.0 → 6.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/commands/make/attachment_v5_migration.d.ts.map +1 -1
- package/build/commands/make/attachment_v5_migration.js +6 -3
- package/build/commands/make/attachment_v5_migration.js.map +1 -1
- package/build/commands/make/attachments_table.d.ts.map +1 -1
- package/build/commands/make/attachments_table.js +8 -2
- package/build/commands/make/attachments_table.js.map +1 -1
- package/build/index.d.ts +23 -22
- package/build/index.d.ts.map +1 -1
- package/build/index.js +15 -14
- package/build/index.js.map +1 -1
- package/build/providers/attachment_provider.d.ts.map +1 -1
- package/build/providers/attachment_provider.js +16 -0
- package/build/providers/attachment_provider.js.map +1 -1
- package/build/src/core/attachment.d.ts +37 -2
- package/build/src/core/attachment.d.ts.map +1 -1
- package/build/src/core/attachment.js +108 -5
- package/build/src/core/attachment.js.map +1 -1
- package/build/src/core/attachment_options.d.ts +32 -0
- package/build/src/core/attachment_options.d.ts.map +1 -0
- package/build/src/core/attachment_options.js +24 -0
- package/build/src/core/attachment_options.js.map +1 -0
- package/build/src/core/attachment_service.d.ts +7 -1
- package/build/src/core/attachment_service.d.ts.map +1 -1
- package/build/src/core/attachment_service.js +50 -4
- package/build/src/core/attachment_service.js.map +1 -1
- package/build/src/core/index.d.ts +2 -1
- package/build/src/core/index.d.ts.map +1 -1
- package/build/src/core/index.js +2 -1
- package/build/src/core/index.js.map +1 -1
- package/build/src/define_config.d.ts +17 -0
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js +9 -0
- package/build/src/define_config.js.map +1 -1
- package/build/src/integrations/lucid/column/attachment_column.d.ts +18 -0
- package/build/src/integrations/lucid/column/attachment_column.d.ts.map +1 -0
- package/build/src/integrations/lucid/{attachment_column.js → column/attachment_column.js} +26 -13
- package/build/src/integrations/lucid/column/attachment_column.js.map +1 -0
- package/build/src/integrations/lucid/index.d.ts +16 -12
- package/build/src/integrations/lucid/index.d.ts.map +1 -1
- package/build/src/integrations/lucid/index.js +16 -12
- package/build/src/integrations/lucid/index.js.map +1 -1
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts +20 -0
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts.map +1 -0
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js +18 -0
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment.d.ts → migrations/legacy/migrate_legacy_attachment.d.ts} +25 -9
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.d.ts.map +1 -0
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.js +94 -0
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.js.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment_records.d.ts → migrations/legacy/migrate_legacy_attachment_records.d.ts} +3 -3
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.d.ts.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment_records.js → migrations/legacy/migrate_legacy_attachment_records.js} +7 -6
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.js.map +1 -0
- package/build/src/integrations/lucid/models/attachment_link_model.d.ts +30 -0
- package/build/src/integrations/lucid/models/attachment_link_model.d.ts.map +1 -0
- package/build/src/integrations/lucid/models/attachment_link_model.js +58 -0
- package/build/src/integrations/lucid/models/attachment_link_model.js.map +1 -0
- package/build/src/integrations/lucid/{attachment_model.d.ts → models/attachment_model.d.ts} +2 -6
- package/build/src/integrations/lucid/models/attachment_model.d.ts.map +1 -0
- package/build/src/integrations/lucid/{attachment_model.js → models/attachment_model.js} +1 -13
- package/build/src/integrations/lucid/models/attachment_model.js.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.d.ts +34 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js +195 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js.map +1 -0
- package/build/src/integrations/lucid/{lucid_attachment_repository.d.ts → persistence/lucid_attachment_repository.d.ts} +3 -3
- package/build/src/integrations/lucid/persistence/lucid_attachment_repository.d.ts.map +1 -0
- package/build/src/integrations/lucid/{lucid_attachment_repository.js → persistence/lucid_attachment_repository.js} +1 -1
- package/build/src/integrations/lucid/persistence/lucid_attachment_repository.js.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts +48 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.js +224 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.js.map +1 -0
- package/build/src/integrations/lucid/{lucid_variant_generation_service.d.ts → persistence/lucid_variant_generation_service.d.ts} +3 -3
- package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.js.map +1 -0
- package/build/src/integrations/lucid/{attachment_owner.d.ts → relations/attachment_owner.d.ts} +2 -1
- package/build/src/integrations/lucid/relations/attachment_owner.d.ts.map +1 -0
- package/build/src/integrations/lucid/relations/attachment_owner.js.map +1 -0
- package/build/src/integrations/lucid/relations/attachment_relation.d.ts +71 -0
- package/build/src/integrations/lucid/relations/attachment_relation.d.ts.map +1 -0
- package/build/src/integrations/lucid/relations/attachment_relation.js +266 -0
- package/build/src/integrations/lucid/relations/attachment_relation.js.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts +24 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.js +68 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.js.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.d.ts +15 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.d.ts.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.js +20 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.js.map +1 -0
- package/build/src/integrations/lucid/schema/attachments_table_stub.d.ts.map +1 -0
- package/build/src/integrations/lucid/{attachments_table_stub.js → schema/attachments_table_stub.js} +2 -4
- package/build/src/integrations/lucid/schema/attachments_table_stub.js.map +1 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts +12 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts.map +1 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js +19 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js.map +1 -0
- package/build/src/sources/attachment_manager.d.ts +14 -12
- package/build/src/sources/attachment_manager.d.ts.map +1 -1
- package/build/src/sources/attachment_manager.js +14 -6
- package/build/src/sources/attachment_manager.js.map +1 -1
- package/build/stubs/migrations/attachments_table.stub +7 -24
- package/build/{src/integrations/lucid/render_legacy_attachment_migration_script.js → stubs/migrations/legacy_attachment_migration.stub} +13 -15
- package/build/tests/attachment_manager.spec.js +21 -18
- package/build/tests/attachment_manager.spec.js.map +1 -1
- package/build/tests/attachment_manager_service.spec.js +2 -2
- package/build/tests/attachment_manager_service.spec.js.map +1 -1
- package/build/tests/attachment_options.spec.d.ts +2 -0
- package/build/tests/attachment_options.spec.d.ts.map +1 -0
- package/build/tests/attachment_options.spec.js +31 -0
- package/build/tests/attachment_options.spec.js.map +1 -0
- package/build/tests/attachment_provider.spec.js +30 -1
- package/build/tests/attachment_provider.spec.js.map +1 -1
- package/build/tests/{create_legacy_attachment_migration_script.spec.d.ts → attachment_schema_service.spec.d.ts} +1 -1
- package/build/tests/attachment_schema_service.spec.d.ts.map +1 -0
- package/build/tests/attachment_schema_service.spec.js +38 -0
- package/build/tests/attachment_schema_service.spec.js.map +1 -0
- package/build/tests/attachment_service.spec.js +55 -0
- package/build/tests/attachment_service.spec.js.map +1 -1
- package/build/tests/attachment_table_names.spec.d.ts +8 -0
- package/build/tests/attachment_table_names.spec.d.ts.map +1 -0
- package/build/tests/attachment_table_names.spec.js +36 -0
- package/build/tests/attachment_table_names.spec.js.map +1 -0
- package/build/tests/attachments_table_stub.spec.js +41 -5
- package/build/tests/attachments_table_stub.spec.js.map +1 -1
- package/build/tests/define_config.spec.js +34 -0
- package/build/tests/define_config.spec.js.map +1 -1
- package/build/tests/helpers/lucid_test_database.d.ts.map +1 -1
- package/build/tests/helpers/lucid_test_database.js +16 -6
- package/build/tests/helpers/lucid_test_database.js.map +1 -1
- package/build/tests/legacy_attachment_migration_stub.spec.d.ts +8 -0
- package/build/tests/legacy_attachment_migration_stub.spec.d.ts.map +1 -0
- package/build/tests/legacy_attachment_migration_stub.spec.js +57 -0
- package/build/tests/legacy_attachment_migration_stub.spec.js.map +1 -0
- package/build/tests/lucid_attachment_collection_store.spec.d.ts +2 -0
- package/build/tests/lucid_attachment_collection_store.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_collection_store.spec.js +53 -0
- package/build/tests/lucid_attachment_collection_store.spec.js.map +1 -0
- package/build/tests/lucid_attachment_column.spec.js +57 -1
- package/build/tests/lucid_attachment_column.spec.js.map +1 -1
- package/build/tests/lucid_attachment_lifecycle_service.spec.js +117 -111
- package/build/tests/lucid_attachment_lifecycle_service.spec.js.map +1 -1
- package/build/tests/lucid_attachment_relation.spec.d.ts +8 -0
- package/build/tests/lucid_attachment_relation.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_relation.spec.js +295 -0
- package/build/tests/lucid_attachment_relation.spec.js.map +1 -0
- package/build/tests/lucid_attachment_repository.spec.js +1 -1
- package/build/tests/lucid_attachment_repository.spec.js.map +1 -1
- package/build/tests/lucid_attachment_store.spec.js +24 -50
- package/build/tests/lucid_attachment_store.spec.js.map +1 -1
- package/build/tests/lucid_sqlite_integration.spec.js +23 -18
- package/build/tests/lucid_sqlite_integration.spec.js.map +1 -1
- package/build/tests/lucid_variant_generation_service.spec.js +1 -1
- package/build/tests/lucid_variant_generation_service.spec.js.map +1 -1
- package/build/tests/migrate_legacy_attachment.spec.js +114 -67
- package/build/tests/migrate_legacy_attachment.spec.js.map +1 -1
- package/build/tests/migrate_legacy_attachment_records.spec.js +4 -3
- package/build/tests/migrate_legacy_attachment_records.spec.js.map +1 -1
- package/package.json +4 -2
- package/build/src/integrations/lucid/attachment_column.d.ts +0 -11
- package/build/src/integrations/lucid/attachment_column.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_column.js.map +0 -1
- package/build/src/integrations/lucid/attachment_model.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_model.js.map +0 -1
- package/build/src/integrations/lucid/attachment_owner.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_owner.js.map +0 -1
- package/build/src/integrations/lucid/attachments_table_stub.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachments_table_stub.js.map +0 -1
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts +0 -13
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts.map +0 -1
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js +0 -20
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts +0 -21
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js +0 -68
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_repository.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_repository.js.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_store.d.ts +0 -27
- package/build/src/integrations/lucid/lucid_attachment_store.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_store.js +0 -84
- package/build/src/integrations/lucid/lucid_attachment_store.js.map +0 -1
- package/build/src/integrations/lucid/lucid_variant_generation_service.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_variant_generation_service.js.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment.d.ts.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment.js +0 -67
- package/build/src/integrations/lucid/migrate_legacy_attachment.js.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.d.ts.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.js.map +0 -1
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts +0 -11
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts.map +0 -1
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.js.map +0 -1
- package/build/tests/create_legacy_attachment_migration_script.spec.d.ts.map +0 -1
- package/build/tests/create_legacy_attachment_migration_script.spec.js +0 -31
- package/build/tests/create_legacy_attachment_migration_script.spec.js.map +0 -1
- /package/build/src/integrations/lucid/{lucid_variant_generation_service.js → persistence/lucid_variant_generation_service.js} +0 -0
- /package/build/src/integrations/lucid/{attachment_owner.js → relations/attachment_owner.js} +0 -0
- /package/build/src/integrations/lucid/{attachments_table_stub.d.ts → schema/attachments_table_stub.d.ts} +0 -0
|
@@ -2,8 +2,9 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { test } from '@japa/runner';
|
|
4
4
|
import MakeAttachmentsTable from '../commands/make/attachments_table.js';
|
|
5
|
+
import { defineConfig } from '../src/define_config.js';
|
|
5
6
|
import { stubsRoot } from '../stubs/main.js';
|
|
6
|
-
import { createAttachmentsTableStubState } from '../src/integrations/lucid/attachments_table_stub.js';
|
|
7
|
+
import { createAttachmentsTableStubState } from '../src/integrations/lucid/schema/attachments_table_stub.js';
|
|
7
8
|
test.group('attachments table migration stub', () => {
|
|
8
9
|
test('prepares a timestamped destination and template state', ({ assert }) => {
|
|
9
10
|
const state = createAttachmentsTableStubState({
|
|
@@ -20,14 +21,15 @@ test.group('attachments table migration stub', () => {
|
|
|
20
21
|
test('rejects unsafe table names', ({ assert }) => {
|
|
21
22
|
assert.throws(() => createAttachmentsTableStubState({ directory: '/app', tableName: 'attachments; drop table users' }), 'Lucid attachment table names must be snake_case identifiers');
|
|
22
23
|
});
|
|
23
|
-
test('
|
|
24
|
+
test('delegates blob and polymorphic-link schemas to the package service', async ({ assert }) => {
|
|
24
25
|
const stub = await readFile(join(stubsRoot, 'migrations/attachments_table.stub'), 'utf8');
|
|
25
26
|
assert.include(stub, 'exports({ to: destination })');
|
|
26
27
|
assert.include(stub, 'Create{{ className }}Table');
|
|
27
28
|
assert.include(stub, "protected tableName = '{{ tableName }}'");
|
|
28
|
-
assert.include(stub, "
|
|
29
|
-
assert.include(stub,
|
|
30
|
-
assert.include(stub,
|
|
29
|
+
assert.include(stub, "import { AttachmentSchemaService } from '@jrmc/adonis-attachment/lucid'");
|
|
30
|
+
assert.include(stub, 'new AttachmentSchemaService(this.db.getWriteClient()');
|
|
31
|
+
assert.include(stub, 'createTables()');
|
|
32
|
+
assert.include(stub, 'dropTables()');
|
|
31
33
|
});
|
|
32
34
|
test('uses the package stub from the Ace command', async ({ assert }) => {
|
|
33
35
|
const generated = [];
|
|
@@ -61,5 +63,39 @@ test.group('attachments table migration stub', () => {
|
|
|
61
63
|
assert.match(String(stub.state.destination), /^\/app\/database\/migrations\/\d+_create_media_attachments_table\.ts$/);
|
|
62
64
|
assert.match(message, /^Created \/app\/database\/migrations\//);
|
|
63
65
|
});
|
|
66
|
+
test('uses the configured Lucid table when the command has no --table flag', async ({ assert, }) => {
|
|
67
|
+
const generated = [];
|
|
68
|
+
await MakeAttachmentsTable.prototype.run.call({
|
|
69
|
+
parsed: { flags: {} },
|
|
70
|
+
app: {
|
|
71
|
+
makePath: (path) => `/app/${path}`,
|
|
72
|
+
config: {
|
|
73
|
+
get() {
|
|
74
|
+
return defineConfig({
|
|
75
|
+
storage: {
|
|
76
|
+
async write() { },
|
|
77
|
+
async read() {
|
|
78
|
+
return new Uint8Array();
|
|
79
|
+
},
|
|
80
|
+
async remove() { },
|
|
81
|
+
},
|
|
82
|
+
integrations: {
|
|
83
|
+
lucid: { tableName: 'media_attachments' },
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
async createCodemods() {
|
|
90
|
+
return {
|
|
91
|
+
async makeUsingStub(_root, _path, state) {
|
|
92
|
+
generated.push({ state });
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
logger: { success() { } },
|
|
97
|
+
});
|
|
98
|
+
assert.equal(generated[0]?.state.tableName, 'media_attachments');
|
|
99
|
+
});
|
|
64
100
|
});
|
|
65
101
|
//# sourceMappingURL=attachments_table_stub.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments_table_stub.spec.js","sourceRoot":"","sources":["../../tests/attachments_table_stub.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,oBAAoB,MAAM,uCAAuC,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"attachments_table_stub.spec.js","sourceRoot":"","sources":["../../tests/attachments_table_stub.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,oBAAoB,MAAM,uCAAuC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,4DAA4D,CAAA;AAE5G,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,uDAAuD,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,+BAA+B,CAAC;YAC5C,SAAS,EAAE,0BAA0B;YACrC,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,aAAa;SACzB,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;YACtB,WAAW,EAAE,0EAA0E;YACvF,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAChD,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,+BAA+B,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,+BAA+B,EAAE,CAAC,EACxG,6DAA6D,CAC9D,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oEAAoE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,EAAE,MAAM,CAAC,CAAA;QAEzF,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAA;QACpD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;QAClD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAA;QAC/D,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,yEAAyE,CAAC,CAAA;QAC/F,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,sDAAsD,CAAC,CAAA;QAC5E,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;QACtC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4CAA4C,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACtE,MAAM,SAAS,GAA0E,EAAE,CAAA;QAC3F,MAAM,QAAQ,GAAa,EAAE,CAAA;QAE7B,MAAM,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5C,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE;YAChF,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE;YACnD,KAAK,CAAC,cAAc;gBAClB,OAAO;oBACL,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,KAA8B;wBAC5E,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;oBACvC,CAAC;iBACF,CAAA;YACH,CAAC;YACD,MAAM,EAAE;gBACN,OAAO,CAAC,OAAe;oBACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACxB,CAAC;aACF;SACO,CAAC,CAAA;QAEX,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAE3B,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;QACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,uEAAuE,CAAC,CAAA;QACrH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sEAAsE,EAAE,KAAK,EAAE,EAClF,MAAM,GACP,EAAE,EAAE;QACH,MAAM,SAAS,GAA8C,EAAE,CAAA;QAE/D,MAAM,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5C,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACrB,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE;gBAC1C,MAAM,EAAE;oBACN,GAAG;wBACD,OAAO,YAAY,CAAC;4BAClB,OAAO,EAAE;gCACP,KAAK,CAAC,KAAK,KAAI,CAAC;gCAChB,KAAK,CAAC,IAAI;oCACR,OAAO,IAAI,UAAU,EAAE,CAAA;gCACzB,CAAC;gCACD,KAAK,CAAC,MAAM,KAAI,CAAC;6BAClB;4BACD,YAAY,EAAE;gCACZ,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE;6BAC1C;yBACF,CAAC,CAAA;oBACJ,CAAC;iBACF;aACF;YACD,KAAK,CAAC,cAAc;gBAClB,OAAO;oBACL,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,KAAa,EAAE,KAA8B;wBAC9E,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC3B,CAAC;iBACF,CAAA;YACH,CAAC;YACD,MAAM,EAAE,EAAE,OAAO,KAAI,CAAC,EAAE;SAChB,CAAC,CAAA;QAEX,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -149,6 +149,40 @@ test.group('defineConfig', () => {
|
|
|
149
149
|
const resolved = await defineConfig({ defaultDisk: 'public', storage, sources }).resolver({});
|
|
150
150
|
assert.equal(resolved.sources, sources);
|
|
151
151
|
});
|
|
152
|
+
test('preserves attachment persistence defaults', async ({ assert }) => {
|
|
153
|
+
const storage = {
|
|
154
|
+
async write() { },
|
|
155
|
+
async read() {
|
|
156
|
+
return new Uint8Array();
|
|
157
|
+
},
|
|
158
|
+
async remove() { },
|
|
159
|
+
};
|
|
160
|
+
const defaults = { folder: 'attachments', variants: ['thumbnail'] };
|
|
161
|
+
const resolved = await defineConfig({ defaultDisk: 'public', storage, defaults }).resolver({});
|
|
162
|
+
assert.equal(resolved.defaults, defaults);
|
|
163
|
+
});
|
|
164
|
+
test('derives Lucid link table names from one configured blob table', async ({ assert }) => {
|
|
165
|
+
const storage = {
|
|
166
|
+
async write() { },
|
|
167
|
+
async read() {
|
|
168
|
+
return new Uint8Array();
|
|
169
|
+
},
|
|
170
|
+
async remove() { },
|
|
171
|
+
};
|
|
172
|
+
const resolved = await defineConfig({
|
|
173
|
+
defaultDisk: 'public',
|
|
174
|
+
storage,
|
|
175
|
+
integrations: {
|
|
176
|
+
lucid: { tableName: 'media_attachments' },
|
|
177
|
+
},
|
|
178
|
+
}).resolver({});
|
|
179
|
+
assert.deepEqual(resolved.integrations, {
|
|
180
|
+
lucid: {
|
|
181
|
+
tableName: 'media_attachments',
|
|
182
|
+
linksTableName: 'media_attachment_links',
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
});
|
|
152
186
|
test('rejects invalid route prefixes', async ({ assert }) => {
|
|
153
187
|
const storage = {
|
|
154
188
|
async write() { },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.spec.js","sourceRoot":"","sources":["../../tests/define_config.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"define_config.spec.js","sourceRoot":"","sources":["../../tests/define_config.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucid_test_database.d.ts","sourceRoot":"","sources":["../../../tests/helpers/lucid_test_database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"lucid_test_database.d.ts","sourceRoot":"","sources":["../../../tests/helpers/lucid_test_database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAKnD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,CA0DjE"}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
6
|
*/
|
|
7
7
|
import { Database } from '@adonisjs/lucid/database';
|
|
8
|
-
import { AttachmentModel } from '../../src/integrations/lucid/attachment_model.js';
|
|
8
|
+
import { AttachmentModel } from '../../src/integrations/lucid/models/attachment_model.js';
|
|
9
|
+
import { AttachmentLinkModel } from '../../src/integrations/lucid/models/attachment_link_model.js';
|
|
9
10
|
export async function createLucidTestDatabase() {
|
|
10
11
|
const database = new Database({
|
|
11
12
|
connection: 'sqlite',
|
|
@@ -24,12 +25,9 @@ export async function createLucidTestDatabase() {
|
|
|
24
25
|
},
|
|
25
26
|
});
|
|
26
27
|
AttachmentModel.useAdapter(database.modelAdapter());
|
|
28
|
+
AttachmentLinkModel.useAdapter(database.modelAdapter());
|
|
27
29
|
await database.connection().schema.createTable('attachments', (table) => {
|
|
28
30
|
table.string('id').primary();
|
|
29
|
-
table.string('attachable_type').notNullable();
|
|
30
|
-
table.string('attachable_id').notNullable();
|
|
31
|
-
table.string('field').notNullable();
|
|
32
|
-
table.string('owner_key', 64).nullable().unique();
|
|
33
31
|
table.string('parent_id').nullable().references('id').inTable('attachments').onDelete('CASCADE');
|
|
34
32
|
table.string('variant_key').nullable();
|
|
35
33
|
table.string('disk').notNullable();
|
|
@@ -42,10 +40,22 @@ export async function createLucidTestDatabase() {
|
|
|
42
40
|
table.json('metadata').nullable();
|
|
43
41
|
table.timestamp('created_at').notNullable();
|
|
44
42
|
table.timestamp('updated_at').notNullable();
|
|
45
|
-
table.index(['attachable_type', 'attachable_id', 'field']);
|
|
46
43
|
table.index(['parent_id']);
|
|
47
44
|
table.unique(['parent_id', 'variant_key']);
|
|
48
45
|
});
|
|
46
|
+
await database.connection().schema.createTable('attachment_links', (table) => {
|
|
47
|
+
table.string('id').primary();
|
|
48
|
+
table.string('attachable_type').notNullable();
|
|
49
|
+
table.string('attachable_id').notNullable();
|
|
50
|
+
table.string('field').notNullable();
|
|
51
|
+
table.string('owner_key', 64).nullable().unique();
|
|
52
|
+
table.integer('position').unsigned().nullable();
|
|
53
|
+
table.string('attachment_id').notNullable().references('id').inTable('attachments').onDelete('CASCADE');
|
|
54
|
+
table.timestamp('created_at').notNullable();
|
|
55
|
+
table.timestamp('updated_at').notNullable();
|
|
56
|
+
table.index(['attachable_type', 'attachable_id', 'field']);
|
|
57
|
+
table.index(['attachment_id']);
|
|
58
|
+
});
|
|
49
59
|
return database;
|
|
50
60
|
}
|
|
51
61
|
//# sourceMappingURL=lucid_test_database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucid_test_database.js","sourceRoot":"","sources":["../../../tests/helpers/lucid_test_database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lucid_test_database.js","sourceRoot":"","sources":["../../../tests/helpers/lucid_test_database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy_attachment_migration_stub.spec.d.ts","sourceRoot":"","sources":["../../tests/legacy_attachment_migration_stub.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import { readFile } from 'node:fs/promises';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { test } from '@japa/runner';
|
|
10
|
+
import MakeAttachmentV5Migration from '../commands/make/attachment_v5_migration.js';
|
|
11
|
+
import { stubsRoot } from '../stubs/main.js';
|
|
12
|
+
import { createLegacyAttachmentMigrationStubState } from '../src/integrations/lucid/index.js';
|
|
13
|
+
test.group('legacy attachment migration stub', () => {
|
|
14
|
+
test('prepares a timestamped destination and template state', ({ assert }) => {
|
|
15
|
+
assert.deepEqual(createLegacyAttachmentMigrationStubState({
|
|
16
|
+
directory: '/app/database/scripts',
|
|
17
|
+
defaultDisk: 's3',
|
|
18
|
+
timestamp: 1700000000000,
|
|
19
|
+
}), {
|
|
20
|
+
destination: '/app/database/scripts/1700000000000_migrate_v5_attachments.ts',
|
|
21
|
+
defaultDisk: 's3',
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
test('uses a package stub for the generated data migration', async ({ assert }) => {
|
|
25
|
+
const stub = await readFile(join(stubsRoot, 'migrations/legacy_attachment_migration.stub'), 'utf8');
|
|
26
|
+
assert.include(stub, 'exports({ to: destination })');
|
|
27
|
+
assert.include(stub, "defaultDisk: '{{ defaultDisk }}'");
|
|
28
|
+
assert.include(stub, 'migrateLegacyAttachmentRecords');
|
|
29
|
+
assert.include(stub, 'AttachmentLinkModel.createMany(rows.links');
|
|
30
|
+
});
|
|
31
|
+
test('uses the package stub from the Ace command', async ({ assert }) => {
|
|
32
|
+
const generated = [];
|
|
33
|
+
const messages = [];
|
|
34
|
+
await MakeAttachmentV5Migration.prototype.run.call({
|
|
35
|
+
parsed: { flags: { disk: 's3', folder: 'database/scripts' } },
|
|
36
|
+
app: { makePath: (path) => `/app/${path}` },
|
|
37
|
+
async createCodemods() {
|
|
38
|
+
return {
|
|
39
|
+
async makeUsingStub(root, path, state) {
|
|
40
|
+
generated.push({ root, path, state });
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
logger: {
|
|
45
|
+
success(message) {
|
|
46
|
+
messages.push(message);
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
assert.equal(generated[0]?.root, stubsRoot);
|
|
51
|
+
assert.equal(generated[0]?.path, 'migrations/legacy_attachment_migration.stub');
|
|
52
|
+
assert.equal(generated[0]?.state.defaultDisk, 's3');
|
|
53
|
+
assert.match(String(generated[0]?.state.destination), /^\/app\/database\/scripts\/\d+_migrate_v5_attachments\.ts$/);
|
|
54
|
+
assert.match(messages[0] ?? '', /^Created \/app\/database\/scripts\//);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=legacy_attachment_migration_stub.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy_attachment_migration_stub.spec.js","sourceRoot":"","sources":["../../tests/legacy_attachment_migration_stub.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_collection_store.spec.d.ts","sourceRoot":"","sources":["../../tests/lucid_attachment_collection_store.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { test } from '@japa/runner';
|
|
2
|
+
import { LucidAttachmentStore } from '../src/integrations/lucid/persistence/lucid_attachment_store.js';
|
|
3
|
+
import { createLucidTestDatabase } from './helpers/lucid_test_database.js';
|
|
4
|
+
const owner = { type: 'users', id: 'user-1', field: 'avatars' };
|
|
5
|
+
let database;
|
|
6
|
+
function makeAttachment(id) {
|
|
7
|
+
return {
|
|
8
|
+
id,
|
|
9
|
+
disk: 'fs',
|
|
10
|
+
path: `users/user-1/${id}.jpg`,
|
|
11
|
+
name: `${id}.jpg`,
|
|
12
|
+
originalName: `${id}.jpg`,
|
|
13
|
+
mimeType: 'image/jpeg',
|
|
14
|
+
extname: 'jpg',
|
|
15
|
+
size: 42,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
test.group('Lucid attachment collection store', (group) => {
|
|
19
|
+
group.setup(async () => {
|
|
20
|
+
database = await createLucidTestDatabase();
|
|
21
|
+
});
|
|
22
|
+
group.each.setup(async () => {
|
|
23
|
+
await database.from('attachment_links').delete();
|
|
24
|
+
await database.from('attachments').delete();
|
|
25
|
+
});
|
|
26
|
+
group.teardown(async () => {
|
|
27
|
+
await database.manager.closeAll();
|
|
28
|
+
});
|
|
29
|
+
test('inserts, orders, moves, and removes collection items', async ({ assert }) => {
|
|
30
|
+
const store = new LucidAttachmentStore();
|
|
31
|
+
const first = await store.createCollectionItem(owner, makeAttachment('first'));
|
|
32
|
+
const third = await store.createCollectionItem(owner, makeAttachment('third'));
|
|
33
|
+
const second = await store.createCollectionItem(owner, makeAttachment('second'), 1);
|
|
34
|
+
assert.deepEqual((await store.listCollection(owner)).map((item) => [item.attachmentId, item.position]), [
|
|
35
|
+
['first', 0],
|
|
36
|
+
['second', 1],
|
|
37
|
+
['third', 2],
|
|
38
|
+
]);
|
|
39
|
+
assert.isNull(await store.findOriginal(owner));
|
|
40
|
+
await store.moveCollectionItem(owner, third.id, 0);
|
|
41
|
+
assert.deepEqual((await store.listCollection(owner)).map((item) => [item.attachmentId, item.position]), [
|
|
42
|
+
['third', 0],
|
|
43
|
+
['first', 1],
|
|
44
|
+
['second', 2],
|
|
45
|
+
]);
|
|
46
|
+
await store.removeCollectionItem(owner, first);
|
|
47
|
+
assert.deepEqual((await store.listCollection(owner)).map((item) => [item.attachmentId, item.position]), [
|
|
48
|
+
['third', 0],
|
|
49
|
+
['second', 1],
|
|
50
|
+
]);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=lucid_attachment_collection_store.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_collection_store.spec.js","sourceRoot":"","sources":["../../tests/lucid_attachment_collection_store.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAE1E,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAC/D,IAAI,QAAkB,CAAA;AAEtB,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO;QACL,EAAE;QACF,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,gBAAgB,EAAE,MAAM;QAC9B,IAAI,EAAE,GAAG,EAAE,MAAM;QACjB,YAAY,EAAE,GAAG,EAAE,MAAM;QACzB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;KACT,CAAA;AACH,CAAC;AAED,IAAI,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,KAAK,EAAE,EAAE;IACxD,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACrB,QAAQ,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAA;QAChD,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAChF,MAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAC9E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;QAEnF,MAAM,CAAC,SAAS,CACd,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EACrF;YACE,CAAC,OAAO,EAAE,CAAC,CAAC;YACZ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACb,CAAC,OAAO,EAAE,CAAC,CAAC;SACb,CACF,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAE9C,MAAM,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAElD,MAAM,CAAC,SAAS,CACd,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EACrF;YACE,CAAC,OAAO,EAAE,CAAC,CAAC;YACZ,CAAC,OAAO,EAAE,CAAC,CAAC;YACZ,CAAC,QAAQ,EAAE,CAAC,CAAC;SACd,CACF,CAAA;QAED,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE9C,MAAM,CAAC,SAAS,CACd,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EACrF;YACE,CAAC,OAAO,EAAE,CAAC,CAAC;YACZ,CAAC,QAAQ,EAAE,CAAC,CAAC;SACd,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -29,9 +29,27 @@ __decorate([
|
|
|
29
29
|
__decorate([
|
|
30
30
|
attachment()
|
|
31
31
|
], ColumnUser.prototype, "avatar", void 0);
|
|
32
|
+
class ConfiguredColumnUser extends BaseModel {
|
|
33
|
+
static table = 'column_users';
|
|
34
|
+
static selfAssignPrimaryKey = true;
|
|
35
|
+
}
|
|
36
|
+
__decorate([
|
|
37
|
+
column({ isPrimary: true })
|
|
38
|
+
], ConfiguredColumnUser.prototype, "id", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
column()
|
|
41
|
+
], ConfiguredColumnUser.prototype, "name", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
attachment({
|
|
44
|
+
disk: 'decorator',
|
|
45
|
+
folder: ({ model }) => `avatars/${model.id}`,
|
|
46
|
+
rename: false,
|
|
47
|
+
})
|
|
48
|
+
], ConfiguredColumnUser.prototype, "avatar", void 0);
|
|
32
49
|
let database;
|
|
33
50
|
let attachments;
|
|
34
51
|
let removed;
|
|
52
|
+
let writes;
|
|
35
53
|
async function createAttachment(name) {
|
|
36
54
|
return attachments.create({
|
|
37
55
|
body: Buffer.from(name),
|
|
@@ -43,6 +61,7 @@ test.group('Lucid attachment column', (group) => {
|
|
|
43
61
|
group.setup(async () => {
|
|
44
62
|
database = await createLucidTestDatabase();
|
|
45
63
|
ColumnUser.useAdapter(database.modelAdapter());
|
|
64
|
+
ConfiguredColumnUser.useAdapter(database.modelAdapter());
|
|
46
65
|
await database.connection().schema.createTable('column_users', (table) => {
|
|
47
66
|
table.string('id').primary();
|
|
48
67
|
table.string('name').notNullable().unique();
|
|
@@ -51,12 +70,16 @@ test.group('Lucid attachment column', (group) => {
|
|
|
51
70
|
});
|
|
52
71
|
group.each.setup(async () => {
|
|
53
72
|
removed = [];
|
|
73
|
+
writes = [];
|
|
54
74
|
await database.from('column_users').delete();
|
|
55
75
|
attachments = new AttachmentService({
|
|
56
76
|
defaultDisk: 'fs',
|
|
77
|
+
defaults: { disk: 'config', folder: 'config' },
|
|
57
78
|
queue: { async enqueue() { } },
|
|
58
79
|
storage: {
|
|
59
|
-
async write() {
|
|
80
|
+
async write(input) {
|
|
81
|
+
writes.push({ disk: input.disk, path: input.path });
|
|
82
|
+
},
|
|
60
83
|
async read() {
|
|
61
84
|
return new Uint8Array();
|
|
62
85
|
},
|
|
@@ -94,6 +117,39 @@ test.group('Lucid attachment column', (group) => {
|
|
|
94
117
|
await user.save();
|
|
95
118
|
assert.deepEqual(removed, [first.path]);
|
|
96
119
|
});
|
|
120
|
+
test('persists drafts with decorator options and lets manager options override them', async ({ assert }) => {
|
|
121
|
+
const decoratorDraft = attachments.createDraft({
|
|
122
|
+
body: Buffer.from('decorator'),
|
|
123
|
+
originalName: 'avatar.txt',
|
|
124
|
+
mimeType: 'text/plain',
|
|
125
|
+
});
|
|
126
|
+
const decoratorUser = new ConfiguredColumnUser();
|
|
127
|
+
decoratorUser.id = 'user-1';
|
|
128
|
+
decoratorUser.name = 'Jeremy';
|
|
129
|
+
decoratorUser.avatar = decoratorDraft;
|
|
130
|
+
assert.isFalse(decoratorDraft.isPersisted);
|
|
131
|
+
assert.deepEqual(writes, []);
|
|
132
|
+
await decoratorUser.save();
|
|
133
|
+
assert.isTrue(decoratorDraft.isPersisted);
|
|
134
|
+
assert.equal(decoratorDraft.disk, 'decorator');
|
|
135
|
+
assert.equal(decoratorDraft.path, 'avatars/user-1/avatar.txt');
|
|
136
|
+
const managerDraft = attachments.createDraft({
|
|
137
|
+
body: Buffer.from('manager'),
|
|
138
|
+
originalName: 'manager.txt',
|
|
139
|
+
mimeType: 'text/plain',
|
|
140
|
+
}, { disk: 'manager', folder: 'imports', rename: true });
|
|
141
|
+
const managerUser = new ConfiguredColumnUser();
|
|
142
|
+
managerUser.id = 'user-2';
|
|
143
|
+
managerUser.name = 'Paul';
|
|
144
|
+
managerUser.avatar = managerDraft;
|
|
145
|
+
await managerUser.save();
|
|
146
|
+
assert.equal(managerDraft.disk, 'manager');
|
|
147
|
+
assert.equal(managerDraft.path, `imports/${managerDraft.id}.txt`);
|
|
148
|
+
assert.deepEqual(writes, [
|
|
149
|
+
{ disk: 'decorator', path: 'avatars/user-1/avatar.txt' },
|
|
150
|
+
{ disk: 'manager', path: `imports/${managerDraft.id}.txt` },
|
|
151
|
+
]);
|
|
152
|
+
});
|
|
97
153
|
test('removes a newly assigned file when save fails', async ({ assert }) => {
|
|
98
154
|
const existing = new ColumnUser();
|
|
99
155
|
existing.id = 'user-1';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucid_attachment_column.spec.js","sourceRoot":"","sources":["../../tests/lucid_attachment_column.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAE1E,MAAM,UAAW,SAAQ,SAAS;IAChC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAA;IAC7B,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAA;;AAG1B;IADP,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;sCACV;AAGV;IADP,MAAM,EAAE;wCACW;AAGZ;IADP,UAAU,EAAE;0CACoB;AAGnC,IAAI,QAAkB,CAAA;AACtB,IAAI,WAA8B,CAAA;AAClC,IAAI,OAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"lucid_attachment_column.spec.js","sourceRoot":"","sources":["../../tests/lucid_attachment_column.spec.ts"],"names":[],"mappings":"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"}
|