Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add wiki.json testing & sorting task #119

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

chanheeis
Copy link
Contributor

Description

wiki.json의 프로퍼티 검증 및 데이터 정렬을 위한 gulp task 추가

  • gulp task는 gulp 명령 입력 시 root 폴더의 gulpfile.js 를 찾아 자동적으로 수행됩니다.
  • script에 prebuild를 정의하여, build 시 사전 작업으로 자동 수행되게끔 구성하였습니다. (수민님 review 반영)
  • 데이터를 하나씩 읽어서 isValidName() 함수를 실행합니다. (하나라도 false가 나오면 Sorting은 수행되지 않습니다.)
  • isValidName에서 false를 return 하는 경우 fancy-log를 이용해 에러 문자열을 출력하게 구성하였습니다.

Help Wanted 👀

wiki.json "소스/매체"가 isValidName에 걸리고 있는데, "소스"도 있고, "매체"도 있는데 혹시 필요한 데이터인가요?

Related Issues

resolve #
#29

Checklist ✋

  • 모든 변경점들을 확인했으며 적절히 설명했습니다.
  • 빌드가 정상적으로 수행됨을 확인했습니다. (yarn build)

  - fancy-log : gulp task error 발생 시 로거 역할
  - gulp-modify-file : gulp task로 파일 변경에 필요한 모듈
  - gulp-prettier : modify-file 시 prettier적용하는 모듈
  - root폴더의 wiki.json 파일 읽어서 Assending Sort
  - isValidName 함수를 통해 Naming Convention 체크
  - Regular Experssion (const regex)를 통해 테스팅

  [Regex 설명]
  - 첫 파트의 첫 문자와 마지막 문자는 알파벳, 숫자, 한글만 허용
  - 두 번째 파트는 반드시 괄호로 싸여있어야 함
  - 두번째 파트의 첫 문자와 마지막 문자는 알파벳, 숫자만 허용
Comment on lines +9 to +18
modifyFile(content => {
let hasWrongFormatName = false;
const wikiData = JSON.parse(content);

for (let idx = 0; idx < wikiData.length; idx++) {
if (isValidName(wikiData[idx].name) === false) {
hasWrongFormatName = true;
break;
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
modifyFile(content => {
let hasWrongFormatName = false;
const wikiData = JSON.parse(content);
for (let idx = 0; idx < wikiData.length; idx++) {
if (isValidName(wikiData[idx].name) === false) {
hasWrongFormatName = true;
break;
}
}
modifyFile(wikiData => {
const records = JSON.parse(wikiData);
const hasWrongFormatName = records.some(record => !isValidName(record.name));
  1. Array.prototype.some 사용해봐도 좋을 것 같슴다 ㅎㅎ
  2. 배열 변수 네이밍은 복수형으로해봐도 조흘듯합니다..!

Comment on lines +22 to +24
: wikiData.sort((a, b) => {
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
: wikiData.sort((a, b) => {
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});
: wikiData.sort((a, b) => a.localeCompare(b));

String.prototype.localeCompare 써봐도 좋을 것 같아요!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@greatSumini 이런게 있군요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

용어 사전 JSON 파일에 등록 시 포맷 테스팅 코드 작성
3 participants