Sjá lýsingu á verkefni í readme-v1.md eða á GitHub.
Uppsetning á package.json
skrá:
name
,version
,description
,author
oglicense
eru sett upp sjálfkrafa við að keyranpm init
."type": "module"
skilgreinir að við notum ECMAScript modules.main
skilgreinir inngang í forritið sem"main": "src/generate.js"
, en það í raun er ekki notað þar sem þetta er ekki pakki fyrir aðra til að nota.engines
skilgreinir að við notumnode
útgáfu 20.scripts
skilgreinir skipanir sem við getum keyrt meðnpm run
, sjá nánar að neðan.build
keyrir ferli sem útbýr vefinn með því að keyra eftirfarandi skipanir í röð (meðnpm-run-all
í serial mode):clean
eyðirdist
möppu ef til,generate
býr tildist
möppu,copy-public
afritarpublic
möppu yfir ídist
möppu.
test
keyrir prófanir.test:coverage
keyrir prófanir og birtir code coverage.lint
keyrir bæðieslint
ogstylelint
meðnpm-run-all
í parallel.lint:eslint
keyrireslint
.lint:stylelint
keyrirstylelint
.
devDependencies
skilgreinir hvaða pakka við notum í þróun (development)
Forrit til að útbúa vef er í grunninn í src/generate.js
sem notar kóða í src/lib
möppu. Þessi kóði er skjalaður með jsdoc
og öðrum athugasemdum þar sem við á.
Aukalega er src/generate-test-data.js
sem var notað til að útbúa gögn í data/
.
eslint
og stylelint
er uppsett og er hægt að keyra með npm run lint
.
jest
er uppsett og er keyrt með npm run test
(eða npm test
sem er sérstaklega skilgreind skipun í NPM). Dæmi um úttak:
> npm run test
> vef2-2024-v1-synilausn@1.0.0 test
> cross-env NODE_OPTIONS='--experimental-vm-modules' jest ./*.test.js
(node:24980) ExperimentalWarning: VM Modules is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
PASS src/lib/file.test.js
file
direxists
✓ returns false if dir does not exist (3 ms)
✓ returns true if dir does exist (1 ms)
✓ returns false if no input
readFilesFromDir
✓ should return empty array for dir that does not exist (1 ms)
✓ should return array of known files for dir that does exist
readFile
✓ should return null for file that does not exist
✓ should return content of known file that does exist (1 ms)
Test Suites: 1 passed, 1 total
Tests: 7 passed, 7 total
Snapshots: 0 total
Time: 0.258 s, estimated 1 s
Ran all test suites matching /.\/*.test.js/i.
Þar sjáum við að öll test fyrir ./src/lib/file.js
eru keyrð og í lagi.
Til að athuga hvernig code coverage er þá er hægt að keyra
npm run test:coverage
eða npm run test -- --coverage
(sem nýtir --
til að senda skipanir í forrit sem er keyrt). Dæmi um úttak sem sýnir code coverage fyrir file.js
út frá prófum skilgreindum í file.test.js
:
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 92.85 | 80 | 80 | 92.85 |
file.js | 92.85 | 80 | 80 | 92.85 | 23-24
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 7 passed, 7 total
Snapshots: 0 total
Time: 0.262 s, estimated 1 s
Ran all test suites matching /.\/*.test.js/i.
Línur 23–24
eru ekki prófaðar þar sem þær munu búa til skrár, betra væri að nota mock til að koma í veg fyrir að það gerist en er ekki gert hér.
Þar sem console.*
aðgerðir eru notaðar til að láta vita af ólöglegu inntaki getur myndast óþarfa úttak í prófum, þá er hægt að sleppa því með því að nota --silent
við keyrslu prófa, t.d. npm run test -- --silent
. Þetta er gert í package.json
skrá.