56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import * as Misskey from 'misskey-js';
|
|
import { describe, test, expect } from 'vitest';
|
|
import { isBirthday } from '@/utility/is-birthday.js';
|
|
|
|
describe('isBirthday', () => {
|
|
test('通常の誕生日', () => {
|
|
const currentDate = new Date('2024-05-15');
|
|
const result = isBirthday({
|
|
birthday: '2000-05-15',
|
|
} as Misskey.entities.UserDetailed, currentDate);
|
|
|
|
expect(result).toBe(true);
|
|
});
|
|
|
|
test('誕生日ではない場合', () => {
|
|
const currentDate = new Date('2024-05-15');
|
|
const result = isBirthday({
|
|
birthday: '2000-06-20',
|
|
} as Misskey.entities.UserDetailed, currentDate);
|
|
|
|
expect(result).toBe(false);
|
|
});
|
|
|
|
test('平年に閏日生まれを見た際に3月1日を誕生日とする', () => {
|
|
const currentDate = new Date('2023-03-01');
|
|
const result = isBirthday({
|
|
birthday: '2000-02-29',
|
|
} as Misskey.entities.UserDetailed, currentDate);
|
|
|
|
expect(result).toBe(true);
|
|
});
|
|
|
|
test('閏年に閏日生まれを見た際に2月29日を誕生日とする', () => {
|
|
const currentDate = new Date('2024-02-29');
|
|
const result = isBirthday({
|
|
birthday: '2000-02-29',
|
|
} as Misskey.entities.UserDetailed, currentDate);
|
|
|
|
expect(result).toBe(true);
|
|
});
|
|
|
|
test('閏年に閏日生まれを見た際に3月1日を誕生日としない', () => {
|
|
const currentDate = new Date('2024-03-01');
|
|
const result = isBirthday({
|
|
birthday: '2000-02-29',
|
|
} as Misskey.entities.UserDetailed, currentDate);
|
|
|
|
expect(result).toBe(false);
|
|
});
|
|
});
|