Skip to content

Commit 3320fe9

Browse files
committed
表示名の実装
1 parent d21b608 commit 3320fe9

6 files changed

Lines changed: 32 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"build": "tsc -p tsconfig.build.json",
88
"test": "jest",
9-
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,html}\"",
9+
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,css,scss,html}\"",
1010
"prepare": "husky install",
1111
"lint-staged": "lint-staged"
1212
},

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './util/index';

src/util/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export * from './isValidDisplayname';
2+
export * from './isValidEmail';
3+
export * from './isValidUsername';

src/util/isValidDisplayname.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* ユーザー名の検証
3+
* @param username
4+
*/
5+
export default function isValidDisplayname(username: string) {
6+
return username.length >= 1 && username.length <= 50;
7+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import isValidDisplayname from '@/util/isValidDisplayname';
2+
3+
describe('isValidDisplayname', () => {
4+
it('有効な表示名の場合はtrueを返す', () => {
5+
expect(isValidDisplayname('ククルス')).toBe(true);
6+
expect(isValidDisplayname('Hello, World!')).toBe(true);
7+
expect(isValidDisplayname('あ'.repeat(50))).toBe(true);
8+
expect(isValidDisplayname('A'.repeat(50))).toBe(true);
9+
});
10+
11+
it('空白には出来ません', () => {
12+
expect(isValidDisplayname('')).toBe(false);
13+
});
14+
15+
it('50文字を超えるユーザー名の場合はfalseを返す', () => {
16+
expect(isValidDisplayname('A'.repeat(51))).toBe(false);
17+
expect(isValidDisplayname('あ'.repeat(51))).toBe(false);
18+
});
19+
});

test/util/isValidEmail.test.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ describe('isValidEmail', () => {
66
});
77

88
it('150文字以上', () => {
9-
let prefix = '';
10-
for (let i = 0; i < 150; i++) {
11-
prefix += 'A';
12-
}
13-
expect(isValidEmail(`@example.com`)).toBe(false);
9+
expect(isValidEmail(`${'A'.repeat(150)}@example.com`)).toBe(false);
1410
});
1511

1612
it('エイリアスが使用可能', () => {

0 commit comments

Comments
 (0)