mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-24 12:29:05 +01:00
Add developer docs
This commit is contained in:
parent
52738c7f8e
commit
46de59b7b4
33
docs/dev-frontend.md
Normal file
33
docs/dev-frontend.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
## Tips for frontend development
|
||||||
|
|
||||||
|
The frontend assets including the Svelte js files are per default embedded in
|
||||||
|
the bgo binary. To enable a quick turnaround cycle for web development of the
|
||||||
|
frontend disable embedding of static assets in `config.json`:
|
||||||
|
```
|
||||||
|
"embed-static-files": false,
|
||||||
|
"static-files": "./web/frontend/public/",
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Start the node build process (in directory `./web/frontend`) in development mode:
|
||||||
|
```
|
||||||
|
$ npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
This will start the build process in listen mode. Whenever you change a source
|
||||||
|
files the depending javascript targets will be automatically rebuild.
|
||||||
|
In case the javascript files are minified you may need to set the production
|
||||||
|
flag by hand to false in `./web/frontend/rollup.config.mjs`:
|
||||||
|
```
|
||||||
|
const production = false
|
||||||
|
```
|
||||||
|
|
||||||
|
Usually this should work automatically.
|
||||||
|
|
||||||
|
Because the files are still served by ./cc-backend you have to reload the view
|
||||||
|
explicitly in your browser.
|
||||||
|
|
||||||
|
A common setup is to have three terminals open:
|
||||||
|
* One running cc-backend (working directory repository root): `./cc-backend -server -dev`
|
||||||
|
* Another running npm in developer mode (working directory `./web/frontend`): `npm run dev`
|
||||||
|
* And the last one editing the frontend source files
|
34
docs/dev-testing.md
Normal file
34
docs/dev-testing.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
## Overview
|
||||||
|
|
||||||
|
We use the standard golang testing environment.
|
||||||
|
|
||||||
|
The following conventions are used:
|
||||||
|
|
||||||
|
* *White box unit tests*: Tests for internal functionality are placed in files
|
||||||
|
* *Black box unit tests*: Tests for public interfaces are placed in files
|
||||||
|
with `<package name>_test.go` and belong to the package `<package_name>_test`.
|
||||||
|
There only exists one package test file per package.
|
||||||
|
* *Integration tests*: Tests that use multiple componenents are placed in a
|
||||||
|
package test file. These are named `<package name>_test.go` and belong to the
|
||||||
|
package `<package_name>_test`.
|
||||||
|
* *Test assets*: Any required files are placed in a directory `./testdata`
|
||||||
|
within each package directory.
|
||||||
|
|
||||||
|
## Executing tests
|
||||||
|
|
||||||
|
Visual Studio Code has a very good golang test integration.
|
||||||
|
For debugging a test this is the recommended solution.
|
||||||
|
|
||||||
|
The Makefile provided by us has a `test` target that executes:
|
||||||
|
```
|
||||||
|
$ go clean -testcache
|
||||||
|
$ go build ./...
|
||||||
|
$ go vet ./...
|
||||||
|
$ go test ./...
|
||||||
|
```
|
||||||
|
|
||||||
|
Of course the commands can also be used on the command line.
|
||||||
|
For details about golang testing refer to the standard documentation:
|
||||||
|
|
||||||
|
* [Testing package](https://pkg.go.dev/testing)
|
||||||
|
* [go test command](https://pkg.go.dev/cmd/go#hdr-Test_packages)
|
Loading…
Reference in New Issue
Block a user