test: write test codes with gh workflow

This commit is contained in:
Starcea 2024-08-10 17:08:53 +09:00
commit ce0ca5988e
No known key found for this signature in database
GPG key ID: B7A77E32374911E1
7 changed files with 56 additions and 5 deletions

21
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,21 @@
name: CI
on: [push, pull_request, workflow_dispatch]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install Dependencies
run: pnpm i --frozen-lockfile
- name: Run tests
run: pnpm test

3
.gitignore vendored
View file

@ -1,5 +1,2 @@
node_modules
dist
# PIIs included
tests

View file

@ -12,7 +12,8 @@
"build": "rimraf dist && tsc",
"lint": "biome check",
"release": "semantic-release",
"prepack": "pnpm build"
"prepack": "pnpm build",
"test": "node -r ts-node/register --test tests/*.test.ts"
},
"keywords": ["comcigan", "parser", "typescript", "school", "korean"],
"author": "Starcea <stardev.uwu@gmail.com>",

14
tests/School.test.ts Normal file
View file

@ -0,0 +1,14 @@
import assert from 'node:assert'
import test from 'node:test'
import { comcigan } from '.'
import { School } from '../src'
test('Search schools by name', async () => {
const schools = await comcigan.searchSchools('중학교')
assert(schools.length > 0)
})
test('Get school by name', async () => {
const school = await School.fromName('중학교')
assert(school)
})

15
tests/Timetable.test.ts Normal file
View file

@ -0,0 +1,15 @@
import assert from 'node:assert'
import test from 'node:test'
import { comcigan } from '.'
test('Get timetable by code', async () => {
const schools = await comcigan.searchSchools('중학교')
const timetable = await comcigan.getTimetable(schools[0].code)
assert(timetable)
})
test('Get timetable by school', async () => {
const schools = await comcigan.searchSchools('중학교')
const timetable = await schools[0].getTimetable()
assert(timetable)
})

3
tests/index.ts Normal file
View file

@ -0,0 +1,3 @@
import Comcigan from '../src'
export const comcigan = new Comcigan()

View file

@ -100,6 +100,6 @@
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": ["src"],
"include": ["src", "tests"],
"exclude": ["node_modules", "dist"]
}