mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.5 KiB
107 lines
2.5 KiB
/*
|
|
* Squidex Headless CMS
|
|
*
|
|
* @license
|
|
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
|
|
*/
|
|
|
|
import { AnnotateAssetForm } from './assets.forms';
|
|
|
|
describe('AnnotateAssetForm', () => {
|
|
let form: AnnotateAssetForm;
|
|
|
|
const asset: any = {
|
|
slug: 'my-file.png',
|
|
tags: [
|
|
'Tag1',
|
|
'Tag2',
|
|
],
|
|
isProtected: false,
|
|
metadata: {
|
|
key1: null,
|
|
key2: 'String',
|
|
key3: 13,
|
|
key4: true,
|
|
},
|
|
fileName: 'My File.png',
|
|
};
|
|
|
|
beforeEach(() => {
|
|
form = new AnnotateAssetForm();
|
|
});
|
|
|
|
it('shoulde remove extension if loading asset file name', () => {
|
|
form.load(asset);
|
|
|
|
const slug = form.form.get('fileName')!.value;
|
|
|
|
expect(slug).toBe('My File');
|
|
});
|
|
|
|
it('should create slug from file name', () => {
|
|
form.load(asset);
|
|
|
|
form.generateSlug({} as any);
|
|
|
|
const slug = form.form.get('slug')!.value;
|
|
|
|
expect(slug).toBe('my-file');
|
|
});
|
|
|
|
it('should create slug from file name and append extension', () => {
|
|
form.form.get('fileName')!.setValue('My New File');
|
|
|
|
form.generateSlug(asset);
|
|
|
|
const slug = form.form.get('slug')!.value;
|
|
|
|
expect(slug).toBe('my-new-file.png');
|
|
});
|
|
|
|
it('should convert metadata if loading', () => {
|
|
form.load(asset);
|
|
|
|
const metadata = form.metadata.value;
|
|
|
|
expect(metadata).toEqual([
|
|
{ name: 'key1', value: '' },
|
|
{ name: 'key2', value: 'String' },
|
|
{ name: 'key3', value: '13' },
|
|
{ name: 'key4', value: 'true' },
|
|
]);
|
|
});
|
|
|
|
it('should convert values if submitting', () => {
|
|
form.load(asset);
|
|
|
|
const request = form.submit({ fileName: 'Old File.png' } as any)!;
|
|
|
|
expect(request).toEqual(asset);
|
|
expect(form.form.enabled).toBeFalsy();
|
|
});
|
|
|
|
it('should return null if nothing changed before submit', () => {
|
|
form.load(asset);
|
|
|
|
const result = form.submit(asset);
|
|
|
|
expect(result).toBeNull();
|
|
expect(form.form.enabled).toBeTruthy();
|
|
});
|
|
|
|
it('should remove previous metadata if loaded', () => {
|
|
const newAsset: any = {
|
|
metadata: {
|
|
key1: 'Value',
|
|
},
|
|
};
|
|
|
|
form.load(newAsset);
|
|
|
|
const metadata = form.metadata.value;
|
|
|
|
expect(metadata).toEqual([
|
|
{ name: 'key1', value: 'Value' },
|
|
]);
|
|
});
|
|
});
|
|
|