335 lines
6.1 KiB
Markdown
335 lines
6.1 KiB
Markdown
# Testing
|
|
|
|
## 유닛 테스트
|
|
|
|
유닛 테스트로 69.6%의 Line Coverage와 73.4%의 Function Coverage를 달성했다.
|
|
다음과 같은 로그가 있다.
|
|
|
|
```
|
|
running 2 tests from ./src/auth/permission.test.ts
|
|
permission.test ... ok (8ms)
|
|
permission empty ... ok (16ms)
|
|
running 4 tests from ./src/auth/session.test.ts
|
|
Session ...
|
|
set ... ok (9ms)
|
|
delete ... ok (16ms)
|
|
ok (42ms)
|
|
Login Handler ...
|
|
login with invalid format ... ok (15ms)
|
|
login with invalid password ... ok (16ms)
|
|
login ... ok (16ms)
|
|
logout with no session ... ok (16ms)
|
|
logout ... ok (16ms)
|
|
ok (96ms)
|
|
getSession ... ok (16ms)
|
|
getSession with invalid cookie ... ok (16ms)
|
|
running 1 test from ./src/auth/user.test.ts
|
|
user.createAdminUser ... ok (15ms)
|
|
running 4 tests from ./src/document/filedoc.test.ts
|
|
readDocFile ... ok (19ms)
|
|
readDocFile: not found ... ok (16ms)
|
|
readDocFile: invalid json ... ok (16ms)
|
|
saveDocFile ... ok (15ms)
|
|
running 3 tests from ./src/router/methodHandle.test.ts
|
|
methodHandle: basic methods ... ok (8ms)
|
|
methodHandle: not found ... ok (16ms)
|
|
methodHandle: options ... ok (16ms)
|
|
running 8 tests from ./src/router/route.test.ts
|
|
route: basic route ... ok (10ms)
|
|
route: double slash route ... ok (16ms)
|
|
route: double match ... ok (16ms)
|
|
route: test context ... ok (16ms)
|
|
route: test regex ... ok (16ms)
|
|
route: test not found ... ok (16ms)
|
|
route: encode_route ... ok (2ms)
|
|
route: router in router ... ok (13ms)
|
|
running 4 tests from ./src/rpc/chunk.test.ts
|
|
basic chunk operation ...
|
|
create chunk ... ok (19ms)
|
|
delete chunk ... ok (15ms)
|
|
modify chunk ... ok (15ms)
|
|
move chunk ... ok (15ms)
|
|
invalid chunk operation ... ok (17ms)
|
|
ok (98ms)
|
|
test chunk notification operation ... ok (15ms)
|
|
test chunk conflict ... ok (16ms)
|
|
test chunk conflict resolve with history ... ok (32ms)
|
|
running 2 tests from ./src/rpc/doc.test.ts
|
|
handleDocumentMethod ... ok (4ms)
|
|
handleTagMethod ...
|
|
setTag ... ok (13ms)
|
|
getTag ... ok (15ms)
|
|
conflict ... ok (15ms)
|
|
ok (61ms)
|
|
running 3 tests from ./src/rpc/share.test.ts
|
|
handleShareGetInfo ... ok (18ms)
|
|
handleShareDocMethod ... ok (15ms)
|
|
handleShareMethod with no existing share token ... ok (16ms)
|
|
running 1 test from ./src/server.test.ts
|
|
server rpc test ... ok (1s)
|
|
running 3 tests from ./src/setting.test.ts
|
|
setting: basic ... ok (35ms)
|
|
setting: default value ... ok (7ms)
|
|
setting: defered register ... ok (16ms)
|
|
test result: ok. 35 passed (15 steps); 0 failed; 0 ignored; 0 measured; 0 filtered out (2s)
|
|
```
|
|
|
|
|
|
## 기능 테스트
|
|
|
|
### Chunk
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Content</th>
|
|
<th>Procedure</th>
|
|
<th>Test Data</th>
|
|
<th>P/F</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1</td>
|
|
<td>Focus/Unfocus</td>
|
|
<td>1. 청크를 클릭한다.</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2</td>
|
|
<td>remove</td>
|
|
<td>1. 청크를 삭제하는 버튼을 클릭한다.</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3-1</td>
|
|
<td>render - markdown</td>
|
|
<td>1. 마크다운 청크 렌더링을 확인한다.</td>
|
|
<td> # 제목 </td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3-2</td>
|
|
<td>render - latex</td>
|
|
<td>1. LaTex 청크 렌더링을 확인한다.</td>
|
|
<td> sum^n_{n=0}n = \frac{n(n+1)}2$$ </td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3-3</td>
|
|
<td>render - link</td>
|
|
<td>1. Image 청크 렌더링을 확인한다.</td>
|
|
<td>http://picsum.photos</td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>4</td>
|
|
<td>previews</td>
|
|
<td>1. Katex 청크의 미리보기를 본다.</td>
|
|
<td> sum^n_{n=0}n = \frac{n(n+1)}2$$ </td>
|
|
<td>F</td>
|
|
</tr>
|
|
<tr>
|
|
<td>10</td>
|
|
<td>autocomplete</td>
|
|
<td>1. <kbd>Ctrl+Space</kbd>를 눌러 자동완성을 시도한다.</td>
|
|
<td></td>
|
|
<td>F</td>
|
|
</tr>
|
|
<tr>
|
|
<td>11</td>
|
|
<td>swap positions</td>
|
|
<td>1. 청크의 위치를 바꾼다.</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>27-1</td>
|
|
<td>edit</td>
|
|
<td>1. 청크를 수정한다.</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>27-2</td>
|
|
<td>edit chunk conflict</td>
|
|
<td>1. 청크를 수정모드에 들어간다.</td>
|
|
<td></td>
|
|
<td>F</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### Document
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Content</th>
|
|
<th>Procedure</th>
|
|
<th>Test Data</th>
|
|
<th>P/F</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>5</td>
|
|
<td>view Chunk</td>
|
|
<td>1. 문서를 열어 청크가 렌더링되는지 본다.</td>
|
|
<td>test.syd</td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>7</td>
|
|
<td>add/delete tag</td>
|
|
<td>1. 문서에 태그를 추가한다.<br>2. 문서에 태그를 삭제한다.</td>
|
|
<td>A</td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>8</td>
|
|
<td>Drag And Drop Upload,</td>
|
|
<td>1. 텍스트를 드래그한다.</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### File
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Content</th>
|
|
<th>Procedure</th>
|
|
<th>Test Data</th>
|
|
<th>P/F</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>14</td>
|
|
<td>create/delete/rename file</td>
|
|
<td>1. 파일을 만든다.</td>
|
|
<td>test.txt</td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>15</td>
|
|
<td>upload/download files</td>
|
|
<td>1. 파일을 업로드한다.</td>
|
|
<td>test.txt</td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>18</td>
|
|
<td>export document</td>
|
|
<td>1. export 버튼을 누른다.</td>
|
|
<td></td>
|
|
<td>F</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### Search
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Content</th>
|
|
<th>Procedure</th>
|
|
<th>Test Data</th>
|
|
<th>P/F</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>16</td>
|
|
<td>Document Search</td>
|
|
<td>1. 검색버튼을 눌러 검색을 한다.</td>
|
|
<td>chunk</td>
|
|
<td>F</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### Stash
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Content</th>
|
|
<th>Procedure</th>
|
|
<th>Test Data</th>
|
|
<th>P/F</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>17</td>
|
|
<td>render</td>
|
|
<td>1. 스태시가 그려지는지 확인한다</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>19</td>
|
|
<td>add</td>
|
|
<td>1. 청크를 추가한다</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>20</td>
|
|
<td>remove</td>
|
|
<td>1. 청크를 삭제한다</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
<tr>
|
|
<td>21</td>
|
|
<td>Drag and Drop to Document</td>
|
|
<td>1. 청크로부터 문서로 청크를 옮긴다.</td>
|
|
<td></td>
|
|
<td>P</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### Management
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Content</th>
|
|
<th>Procedure</th>
|
|
<th>Test Data</th>
|
|
<th>P/F</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>22</td>
|
|
<td>Login</td>
|
|
<td>1. 비밀번호를 입력한다.</td>
|
|
<td>admin</td>
|
|
<td>F</td>
|
|
</tr>
|
|
<tr>
|
|
<td>24</td>
|
|
<td>Localization</td>
|
|
<td>1. 다른언어를 지원하는지 언어를 바꿔 확인한다</td>
|
|
<td></td>
|
|
<td>F</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|