Skip to content

Instantly share code, notes, and snippets.

View zaru's full-sized avatar
😍
write code

zaru zaru

😍
write code
View GitHub Profile
@zaru
zaru / テストケース生成.txt
Created March 23, 2026 00:48
AIテストコードプロンプト例
以下の実現したいことに基づいて、この機能を実現する関数の正しさを検証するための網羅的なテストケースをVitestで生成しテストファイルを作成・更新してください。テストコードや実装コードはまだ書かず、テストケースのみを出力してください。エッジケースや制約条件がしっかりテストされているか確認できるように、各テストメソッドには意図がわかるコメントを添えてください。もし、仕様やデータフローが不明瞭であれば都度ユーザに聞いて下さい。
[出力要件]
実際のテストロジック(arrangeやモックの実装など)は絶対に書かないでください。
代わりに Vitest の describe と it.todo を使用して、テストの階層構造とケース名のみを定義してください。
テストケース名(it.todoの引数)は、それ自体が「生きたドキュメント(仕様書)」となるよう、「〜の時、〜であること」と振る舞いが明確にわかる日本語で記述してください。
モック利用を前提としたテストケースは作らないこと
[実現したいこと]
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// JSONファイルを読み込む関数
function loadTestData(filename) {
const filePath = path.join(__dirname, 'data', filename);

Lexical開発入門入門

  • このドキュメントはLexicalを使ってエディタを開発するための最初の取っ掛かりです
  • 詳細な解説は省き、全体像を理解するのを目的としています

Lexicalとは

Lexicalは、Metaが開発したReact向けの高性能リッチテキストエディタフレームワークです。DraftJSの後継として設計され、より柔軟で拡張性の高いアーキテクチャを持っています。

特徴

@zaru
zaru / create-file.sh
Created August 5, 2024 04:26
S3ファイルアップロードとリネームベンチマーク
#!/bin/bash
# サイズを指定する (1MB = 1048576バイト)
FILE_SIZE=1048576
# ディレクトリとファイルを作成する
for i in {1..10}; do
for j in {1..10}; do
mkdir -p ./xxx${i}/yyy${j}
done
@zaru
zaru / sampleAction.bun.test.ts
Last active June 14, 2024 01:39
Bun test / VitestでNext.jsのServer Actionsをテストする
import { describe, expect, mock, test } from "bun:test";
import { sampleAction } from "@/app/sampleAction";
describe("sampleAction", () => {
test("正常:返り値が正しく返ってくる", async () => {
const result = await sampleAction(true);
expect(result).toEqual({ sampleAction: "sampleAction" });
});
test("異常:エラーページにリダイレクトされる", async () => {
@zaru
zaru / basicMiddleware.ts
Created March 21, 2024 05:35
Next.js middleware実装方針比較:素朴なパターンと高階関数パターン
import {
type NextFetchEvent,
type NextRequest,
NextResponse,
} from "next/server";
async function heavyTask() {
console.log("start heavyTask.", new Date());
// await fetch("http://0.0.0.0:9999/heavy.php", { cache: "no-store" });
console.log("done heavyTask.", new Date());
@zaru
zaru / Ruby3.2.2-RubyVM::YJIT.runtime_stats
Last active September 29, 2023 00:06
Docker ruby:3.3.0-preview2-slim-bullseye, Rails7.0.6
{
:inline_code_size=>14144068,
:outlined_code_size=>14143076,
:freed_page_count=>0,
:freed_code_size=>0,
:live_page_count=>1727,
:code_gc_count=>0,
:code_region_size=>28291072,
:yjit_alloc_size=>43781717,
:all_stats=>true,
@zaru
zaru / Sample.vue
Created December 16, 2021 14:51
withDefaults error
<script setup lang="ts">
interface ISampleProps {
foo: {
bar: string
}
}
const defaultValue: ISampleProps = {
foo: {
bar: 'bar'
}
@zaru
zaru / readme.md
Last active August 23, 2021 05:36

株式会社ベーシック 開発部

key value
更新 2021-08-23
作者 @zaru
バージョン 2021.8
URL http://basicinc.jp/

概要

@zaru
zaru / find_each.rb
Last active August 22, 2021 12:58
find_each 風味
class Batches
BATCH_SIZE = 2
def initialize
@data = (1..10).to_a
end
def find_each
if block_given?
find_in_batches do |records|