diff options
| author | Kagami Sascha Rosylight <saschanaz@outlook.com> | 2023-03-13 01:46:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-13 09:46:33 +0900 |
| commit | 0d2bee787d52b875b474f9fa9eedc49951dce0ee (patch) | |
| tree | fa88d549022a5d7e8cd11a41e7f30470c933b15d /packages/frontend/test | |
| parent | 空文字列のobjectStorageEndtpoinをnullと同様に扱う (#10312) (diff) | |
| download | misskey-0d2bee787d52b875b474f9fa9eedc49951dce0ee.tar.gz misskey-0d2bee787d52b875b474f9fa9eedc49951dce0ee.tar.bz2 misskey-0d2bee787d52b875b474f9fa9eedc49951dce0ee.zip | |
fix(frontend/XHome): fall back to user.uri if user.url does not exist (#10313)
* fix(frontend/XHome): fall back to user.uri if user.url does not exist
* Update CHANGELOG.md
Diffstat (limited to 'packages/frontend/test')
| -rw-r--r-- | packages/frontend/test/home.test.ts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/frontend/test/home.test.ts b/packages/frontend/test/home.test.ts new file mode 100644 index 0000000000..f3eddcd371 --- /dev/null +++ b/packages/frontend/test/home.test.ts @@ -0,0 +1,58 @@ +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 { directives } from '@/directives'; +import { components } from '@/components/index'; +import XHome from '@/pages/user/home.vue'; + +describe('XHome', () => { + const renderHome = (user: Partial<misskey.entities.UserDetailed>): RenderResult => { + return render(XHome, { + props: { user, disableNotes: true }, + global: { directives, components }, + }); + }; + + afterEach(() => { + cleanup(); + }); + + test('Should render the remote caution when user.host exists', async () => { + const home = renderHome({ + id: 'blobcat', + name: 'blobcat', + host: 'example.com', + uri: 'https://example.com/@user', + url: 'https://example.com/@user/profile', + roles: [], + createdAt: '1970-01-01T00:00:00.000Z', + fields: [], + pinnedNotes: [], + }); + + const anchor = home.container.querySelector<HTMLAnchorElement>('a[href^="https://example.com/"]'); + assert.exists(anchor, 'anchor to the remote exists'); + assert.strictEqual(anchor?.href, 'https://example.com/@user/profile'); + + assert.ok(anchor?.parentElement?.classList.contains('warn'), 'the parent is a warning'); + }); + + test('The remote caution should fall back to uri if url is null', async () => { + const home = renderHome({ + id: 'blobcat', + name: 'blobcat', + host: 'example.com', + uri: 'https://example.com/@user', + url: null, + roles: [], + createdAt: '1970-01-01T00:00:00.000Z', + fields: [], + pinnedNotes: [], + }); + + const anchor = home.container.querySelector<HTMLAnchorElement>('a[href^="https://example.com/"]'); + assert.exists(anchor, 'anchor to the remote exists'); + assert.strictEqual(anchor?.href, 'https://example.com/@user'); + }); +}); |