cherrypick/packages/frontend/test/note.test.ts
syuilo 1f7a81aae7
update deps (#11764)
* update deps

* node16

* wip

* wip

* wip

* Update test-utils.ts

* wip

* Update tsconfig.json

* wip

* Update package.json

* wip

* Update following.vue

* Update followers.vue

* Update index.vue

* Update share.vue

* Update MkUserPopup.vue

* Update MkPostForm.vue

* wip

* Update MkTokenGenerateWindow.vue

* Update MkPagination.vue

* refactor

* update deps

* update deps

* Update sw.ts

* wip

* wip

* wip

* Update FetchInstanceMetadataService.ts

* Update FetchInstanceMetadataService.ts

* update node

* update deps

* 🎨
2023-09-04 13:33:38 +09:00

104 lines
2.6 KiB
TypeScript

/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { describe, test, assert, afterEach } from 'vitest';
import { render, cleanup, type RenderResult } from '@testing-library/vue';
import './init';
import type * as Misskey from 'misskey-js';
import { components } from '@/components';
import { directives } from '@/directives';
import MkMediaImage from '@/components/MkMediaImage.vue';
describe('MkMediaImage', () => {
const renderMediaImage = (image: Partial<Misskey.entities.DriveFile>): RenderResult => {
return render(MkMediaImage, {
props: {
image: {
id: 'xxxxxxxx',
createdAt: (new Date()).toJSON(),
isSensitive: false,
name: 'example.png',
thumbnailUrl: null,
url: '',
type: 'application/octet-stream',
size: 1,
md5: '15eca7fba0480996e2245f5185bf39f2',
blurhash: null,
comment: null,
properties: {},
...image,
} as DriveFile,
},
global: { directives, components },
});
};
afterEach(() => {
cleanup();
});
test('Attaching JPG should show no indicator', async () => {
const mkMediaImage = renderMediaImage({
type: 'image/jpeg',
});
const [gif, alt] = await Promise.all([
mkMediaImage.queryByText('GIF'),
mkMediaImage.queryByText('ALT'),
]);
assert.ok(!gif);
assert.ok(!alt);
});
test('Attaching GIF should show a GIF indicator', async () => {
const mkMediaImage = renderMediaImage({
type: 'image/gif',
});
const [gif, alt] = await Promise.all([
mkMediaImage.queryByText('GIF'),
mkMediaImage.queryByText('ALT'),
]);
assert.ok(gif);
assert.ok(!alt);
});
test('Attaching APNG should show a GIF indicator', async () => {
const mkMediaImage = renderMediaImage({
type: 'image/apng',
});
const [gif, alt] = await Promise.all([
mkMediaImage.queryByText('GIF'),
mkMediaImage.queryByText('ALT'),
]);
assert.ok(gif);
assert.ok(!alt);
});
test('Attaching image with an alt message should show an ALT indicator', async () => {
const mkMediaImage = renderMediaImage({
type: 'image/png',
comment: 'Misskeyのロゴです',
});
const [gif, alt] = await Promise.all([
mkMediaImage.queryByText('GIF'),
mkMediaImage.queryByText('ALT'),
]);
assert.ok(!gif);
assert.ok(alt);
});
test('Attaching GIF image with an alt message should show a GIF and an ALT indicator', async () => {
const mkMediaImage = renderMediaImage({
type: 'image/gif',
comment: 'Misskeyのロゴです',
});
const [gif, alt] = await Promise.all([
mkMediaImage.queryByText('GIF'),
mkMediaImage.queryByText('ALT'),
]);
assert.ok(gif);
assert.ok(alt);
});
});