diff --git a/README.md b/README.md index 6d5f4ff..89e3613 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Platform Engineering,플랫폼 엔지니어링 아티클은 [Mustache](https://mustache.github.io) spec 으로 templating 합니다. ```md -# {{ Platform Engineering }} 을 소개합니다. +# {{ Platform Engineering }}을 소개합니다. {{ Platform Engineering }}에 대해 다루어볼까요? ``` @@ -119,7 +119,7 @@ platform: dev.to title: 내가 플랫폼에 대해 말할 때 짚는 것들 # UI 에서 시작적으로 보이지 않는 메타 정보로서의 설명문입니다. -description: {{ Platform Engineering }} 과 관련해 효과적인 디지털 플랫폼이 제공 규모를 확장하는 데 도움이 되는 이유, 플랫폼에 포함되어야 하는 내용, 플랫폼 구축을 시작하는 방법. +description: {{ Platform Engineering }}과 관련해 효과적인 디지털 플랫폼이 제공 규모를 확장하는 데 도움이 되는 이유, 플랫폼에 포함되어야 하는 내용, 플랫폼 구축을 시작하는 방법. # comma-separated values 형식의 태그입니다. # Lowercase 와 숫자만 지원합니다. @@ -173,7 +173,7 @@ id: 1732255 # templating 된 경우, 렌더링 된 내용으로 배포됩니다. --- -# {{ Platform Engineering }} 을 소개합니다. +# {{ Platform Engineering }}을 소개합니다. {{ Platform Engineering }}에 대해 다루어볼까요? ``` diff --git a/test/csvlint.test.ts b/test/csvlint.test.ts index ac75684..eec0029 100644 --- a/test/csvlint.test.ts +++ b/test/csvlint.test.ts @@ -5,19 +5,41 @@ const run = (content: string, options: RunOptions = {}) => _run(content, { silent: true, ...options }) describe('rules', () => { - test('valid example', () => { + test('valid examples', () => { + expect( + run(`en,ko +Platform Engineering,플랫폼 엔지니어링 +Internal Developer Platform,내부 개발자 플랫폼`), + ).toBe(true) + + expect( + run(`en,ko +Platform Engineering,플랫폼 엔지니어링 +Internal Developer Platform,내부 개발자 플랫폼 +`), + ).toBe(true) + }) + + test('invalid line breaks', () => { expect( run(` en,ko Platform Engineering,플랫폼 엔지니어링 Internal Developer Platform,내부 개발자 플랫폼`), - ).toBe(true) + ).toBe(false) + + expect( + run(`en,ko +Platform Engineering,플랫폼 엔지니어링 +Internal Developer Platform,내부 개발자 플랫폼 + +`), + ).toBe(false) }) test('titles', () => { expect( - run(` -en,kor + run(`en,kor Platform Engineering,플랫폼 엔지니어링 Internal Developer Platform,내부 개발자 플랫폼`), ).toBe(false) @@ -25,49 +47,60 @@ Internal Developer Platform,내부 개발자 플랫폼`), test('preceding-whitespace', () => { expect( - run(` -en,ko + run(`en,ko Platform Engineering ,플랫폼 엔지니어링 -Internal Developer Platform,내부 개발자 플랫폼`), +Internal Developer Platform,내부 개발자 플랫폼 +`), ).toBe(false) expect( - run(` -en,ko + run(`en,ko Platform Engineering,플랫폼 엔지니어링 - Internal Developer Platform,내부 개발자 플랫폼`), + Internal Developer Platform,내부 개발자 플랫폼 +`), ).toBe(false) }) test('trailing-whitespace', () => { expect( - run(` -en,ko + run(`en,ko Platform Engineering ,플랫폼 엔지니어링 -Internal Developer Platform,내부 개발자 플랫폼`), +Internal Developer Platform,내부 개발자 플랫폼 +`), ).toBe(false) expect( - run(` -en,ko + run( + `en,ko Platform Engineering,플랫폼 엔지니어링 -Internal Developer Platform,내부 개발자 플랫폼 `), +Internal Developer Platform,내부 개발자 플랫폼 `, + ), // "내부 개발자 플랫폼 " <- trailing whitespace ).toBe(false) + + expect( + run( + /* eslint-disable no-useless-concat */ + `en,ko +Platform Engineering,플랫폼 엔지니어링 +Internal Developer Platform,내부 개발자 플랫폼` + ' \n', + ), // "내부 개발자 플랫폼 " <- trailing whitespace + ).toBe(false) + /* eslint-enable no-useless-concat */ }) test('too-many-columns', () => { expect( - run(` -en,ko,foo + run(`en,ko,foo Platform Engineering,플랫폼 엔지니어링 -Internal Developer Platform,내부 개발자 플랫폼`), +Internal Developer Platform,내부 개발자 플랫폼 +`), ).toBe(false) expect( - run(` -en,ko + run(`en,ko Platform Engineering,플랫폼 엔지니어링, -Internal Developer Platform,내부 개발자 플랫폼`), +Internal Developer Platform,내부 개발자 플랫폼 +`), ).toBe(false) }) }) diff --git a/workflows/csvlint.ts b/workflows/csvlint.ts index bbcf156..91ccf9d 100644 --- a/workflows/csvlint.ts +++ b/workflows/csvlint.ts @@ -30,6 +30,14 @@ export function run( const msg = (message: string): string => chalk`{inverse.italic line ${line} } ${message}: {red ${lineContent}}` const [en, ko, ...rest] = lineContent.split(',') + if (en === undefined) { + results.push(validate(false, msg('Empty line'))) + continue + } + if (ko === undefined) { + results.push(validate(false, msg('Korean is missing'))) + continue + } if (index === 0) { results.push(