mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-25 18:54:52 +00:00 
			
		
		
		
	* kill any on utils:api
* kill any on timeline test
* use optional chain to kill TS2532 on timeline test
変更前: 該当ノートが見つからなければundefinedに対するプロパティアクセスとしてテストがクラッシュ
変更後: 該当ノートが見つからなければoptional chainがundefinedとして評価されるが、strictEqualの右辺がnon-nullableなためアサーションに失敗しテストがクラッシュ
* kill `as any` for ApMfmService
* kill argument any for api-visibility
* kill argument any across a few tests
* do not return value that has yielded from `await`-ing `Promise<void>`
* force cast
* runtime non-null assertion to coerce
* rewrite `assert.notEqual(expr, null)` to `assert.ok(expr)`
こうすることでassertion type扱いになり、non-nullableになる
* change return type of `failedApiCall` to `void`
戻り値がどこにも使われていない
* split bindings for exports.ts
型が合わなくて文句を言ってくるので適切に分割
* runtime non-null assertion
* runtime non-null assertion
* 何故かうまく行かないので、とりあえずXORしてみる
* Revert "何故かうまく行かないので、とりあえずXORしてみる"
This reverts commit 48cf32c930924840d0892af92d71b9437acb5844.
* castAsErrorで安全ではないキャストを隠蔽
* 型アサーションの追加
* 型アサーションの追加
* 型アサーションの追加
* voidで値を返さない
* castAsError
* assert.ok => kill nullability
* もはや明示的な型の指定は必要ない
* castAsError
* castAsError
* 型アサーションの追加
* nullableを一旦抑止
* 変数を分離して型エラーを排除
* 不要なプロパティを削除する処理を隠蔽してanyを排除
* Repository type
* simple type
* assert.ok => kill nullability
* revert `as any` drop
reverts fe95c05b3f53266108128680d9358a3796844232 partialy
* test: fix invalid assertion
partially revert b99b7b5392d9d20c81dfee1346ba8b33ff9e1fbb
* test: 52d8a54fc7 により型が合うようになった部分の`as any`を除去
* format
* test: apply https://github.com/misskey-dev/misskey/pull/14054#discussion_r1672369526 (part 1)
* test: use non-null assertion to suppress too many error
* Update packages/backend/test/utils.ts
Co-authored-by: anatawa12 <anatawa12@icloud.com>
---------
Co-authored-by: anatawa12 <anatawa12@icloud.com>
		
	
			
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /*
 | ||
|  * SPDX-FileCopyrightText: syuilo and misskey-project
 | ||
|  * SPDX-License-Identifier: AGPL-3.0-only
 | ||
|  */
 | ||
| 
 | ||
| import * as assert from 'assert';
 | ||
| import { Test } from '@nestjs/testing';
 | ||
| 
 | ||
| import { CoreModule } from '@/core/CoreModule.js';
 | ||
| import { ApMfmService } from '@/core/activitypub/ApMfmService.js';
 | ||
| import { GlobalModule } from '@/GlobalModule.js';
 | ||
| import { MiNote } from '@/models/Note.js';
 | ||
| 
 | ||
| describe('ApMfmService', () => {
 | ||
| 	let apMfmService: ApMfmService;
 | ||
| 
 | ||
| 	beforeAll(async () => {
 | ||
| 		const app = await Test.createTestingModule({
 | ||
| 			imports: [GlobalModule, CoreModule],
 | ||
| 		}).compile();
 | ||
| 		apMfmService = app.get<ApMfmService>(ApMfmService);
 | ||
| 	});
 | ||
| 
 | ||
| 	describe('getNoteHtml', () => {
 | ||
| 		test('Do not provide _misskey_content for simple text', () => {
 | ||
| 			const note = {
 | ||
| 				text: 'テキスト #タグ @mention 🍊 :emoji: https://example.com',
 | ||
| 				mentionedRemoteUsers: '[]',
 | ||
| 			};
 | ||
| 
 | ||
| 			const { content, noMisskeyContent } = apMfmService.getNoteHtml(note);
 | ||
| 
 | ||
| 			assert.equal(noMisskeyContent, true, 'noMisskeyContent');
 | ||
| 			assert.equal(content, '<p>テキスト <a href="http://misskey.local/tags/タグ" rel="tag">#タグ</a> <a href="http://misskey.local/@mention" class="u-url mention">@mention</a> 🍊 :emoji: <a href="https://example.com">https://example.com</a></p>', 'content');
 | ||
| 		});
 | ||
| 
 | ||
| 		test('Provide _misskey_content for MFM', () => {
 | ||
| 			const note = {
 | ||
| 				text: '$[tada foo]',
 | ||
| 				mentionedRemoteUsers: '[]',
 | ||
| 			};
 | ||
| 
 | ||
| 			const { content, noMisskeyContent } = apMfmService.getNoteHtml(note);
 | ||
| 
 | ||
| 			assert.equal(noMisskeyContent, false, 'noMisskeyContent');
 | ||
| 			assert.equal(content, '<p><i>foo</i></p>', 'content');
 | ||
| 		});
 | ||
| 	});
 | ||
| });
 |