Skip to content

Commit ddb12ae

Browse files
authored
Merge pull request #4 from jekiapp/test-integration
Test integration
2 parents 161c2f6 + 3c8b545 commit ddb12ae

28 files changed

Lines changed: 2550 additions & 123 deletions
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Integration Test
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
integration-test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout code
11+
uses: actions/checkout@v3
12+
13+
- name: Set up Docker Buildx
14+
uses: docker/setup-buildx-action@v3
15+
16+
- name: Create external Docker network if not exists
17+
run: |
18+
docker network inspect topic_master_network >/dev/null 2>&1 || \
19+
docker network create topic_master_network
20+
21+
- name: Start infra/test_setup stack
22+
run: |
23+
docker compose -f infra/test_setup/docker-compose.yml up -d
24+
25+
- name: Wait for NSQ services to be healthy
26+
run: |
27+
for i in {1..30}; do
28+
if docker ps | grep nsqlookupd && docker ps | grep nsqd; then
29+
echo "NSQ services are up" && break
30+
fi
31+
echo "Waiting for NSQ services..."
32+
sleep 2
33+
done
34+
35+
- name: Start topic-master and test-script
36+
run: |
37+
docker compose -f infra/test_script/docker-compose.yml up --build --abort-on-container-exit --exit-code-from test-script
38+
39+
- name: Cleanup
40+
if: always()
41+
run: |
42+
docker compose -f infra/test_script/docker-compose.yml down -v || true
43+
docker compose -f infra/test_setup/docker-compose.yml down -v || true
44+
docker network rm topic_master_network || true

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ topic-master
33
*.db
44
__debug_bin*
55
*.json
6-
.vscode/
76
docs/public/*
87
docs/resources/_gen/*
98
bin/*

Dockerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Build stage
2+
FROM golang:1.23-alpine AS builder
3+
WORKDIR /app
4+
COPY . .
5+
RUN go mod download
6+
RUN go build -o topic-master *.go
7+
8+
# Run stage
9+
FROM alpine:latest
10+
WORKDIR /app
11+
RUN mkdir -p /app/infra/test_data/
12+
COPY --from=builder /app/topic-master .
13+
COPY entrypoint.sh /app/entrypoint.sh
14+
RUN chmod +x /app/entrypoint.sh
15+
ENTRYPOINT ["/app/entrypoint.sh"]
16+
CMD []

Makefile

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
start-test-setup:
2-
docker compose -f infra/test_setup/docker-compose.yml up
2+
docker compose -f infra/test_setup/docker-compose.yml -f infra/test_setup/docker-compose.override.yml up
33

44
start-test-detach:
5-
docker compose -f infra/test_setup/docker-compose.yml up -d
5+
docker compose -f infra/test_setup/docker-compose.yml -f infra/test_setup/docker-compose.override.yml up -d
66

77
stop-test-setup:
8-
docker compose -f infra/test_setup/docker-compose.yml down
8+
docker compose -f infra/test_setup/docker-compose.yml -f infra/test_setup/docker-compose.override.yml down
99

1010
start-docs:
1111
hugo server -s docs -D --disableFastRender -p 1414
@@ -27,3 +27,9 @@ build-macos-arm64:
2727
GOOS=darwin GOARCH=arm64 go build -o bin/topic-master-darwin-arm64 *.go
2828

2929
build-all: build-linux-amd64 build-linux-arm64 build-macos-amd64 build-macos-arm64
30+
31+
start-test-all:
32+
docker compose -f infra/test_setup/docker-compose.yml -f infra/test_setup/docker-compose.override.yml -f infra/test_script/docker-compose.yml up --abort-on-container-exit
33+
34+
start-test-script:
35+
docker compose -f infra/test_script/docker-compose.yml up --abort-on-container-exit

entrypoint.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
rm -rf /app/infra/test_data/*
3+
exec /app/topic-master "$@"

go.mod

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,17 @@ require (
1515
github.com/tidwall/buntdb v1.3.2
1616
github.com/vmihailenco/msgpack/v5 v5.4.1
1717
go.uber.org/mock v0.5.2
18+
golang.org/x/term v0.32.0
1819
)
1920

2021
require (
21-
github.com/cilium/ebpf v0.11.0 // indirect
22-
github.com/cosiner/argv v0.1.0 // indirect
23-
github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
2422
github.com/davecgh/go-spew v1.1.1 // indirect
25-
github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d // indirect
2623
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
27-
github.com/go-delve/delve v1.25.0 // indirect
28-
github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62 // indirect
2924
github.com/go-playground/locales v0.14.1 // indirect
3025
github.com/go-playground/universal-translator v0.18.1 // indirect
3126
github.com/golang/snappy v0.0.1 // indirect
32-
github.com/google/go-dap v0.12.0 // indirect
33-
github.com/hashicorp/golang-lru v1.0.2 // indirect
34-
github.com/inconshreveable/mousetrap v1.1.0 // indirect
3527
github.com/leodido/go-urn v1.4.0 // indirect
36-
github.com/mattn/go-colorable v0.1.13 // indirect
37-
github.com/mattn/go-isatty v0.0.20 // indirect
38-
github.com/mattn/go-runewidth v0.0.13 // indirect
3928
github.com/pmezard/go-difflib v1.0.0 // indirect
40-
github.com/rivo/uniseg v0.2.0 // indirect
41-
github.com/russross/blackfriday/v2 v2.1.0 // indirect
42-
github.com/spf13/cobra v1.9.1 // indirect
43-
github.com/spf13/pflag v1.0.6 // indirect
4429
github.com/tidwall/btree v1.4.2 // indirect
4530
github.com/tidwall/gjson v1.14.3 // indirect
4631
github.com/tidwall/grect v0.1.4 // indirect
@@ -49,15 +34,9 @@ require (
4934
github.com/tidwall/rtred v0.1.2 // indirect
5035
github.com/tidwall/tinyqueue v0.1.1 // indirect
5136
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
52-
go.starlark.net v0.0.0-20231101134539-556fd59b42f6 // indirect
53-
golang.org/x/arch v0.11.0 // indirect
5437
golang.org/x/crypto v0.33.0 // indirect
55-
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 // indirect
5638
golang.org/x/net v0.34.0 // indirect
57-
golang.org/x/sync v0.11.0 // indirect
5839
golang.org/x/sys v0.33.0 // indirect
59-
golang.org/x/telemetry v0.0.0-20241106142447-58a1122356f5 // indirect
60-
golang.org/x/term v0.32.0 // indirect
6140
golang.org/x/text v0.22.0 // indirect
6241
gopkg.in/yaml.v3 v3.0.1 // indirect
6342
)

go.sum

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,7 @@
1-
github.com/cilium/ebpf v0.11.0 h1:V8gS/bTCCjX9uUnkUFUpPsksM8n1lXBAvHcpiFk1X2Y=
2-
github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs=
3-
github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
4-
github.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8=
5-
github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0=
6-
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
71
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
82
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9-
github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d h1:hUWoLdw5kvo2xCsqlsIBMvWUc1QCSsCYD2J2+Fg6YoU=
10-
github.com/derekparker/trie v0.0.0-20230829180723-39f4de51ef7d/go.mod h1:C7Es+DLenIpPc9J6IYw4jrK0h7S9bKj4DNl8+KxGEXU=
113
github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
124
github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8=
13-
github.com/go-delve/delve v1.25.0 h1:JN2S3iVptvayUS2w+d0UEPmijgkodW1AFM4I8UViHGE=
14-
github.com/go-delve/delve v1.25.0/go.mod h1:kJk12wo6PqzWknTP6M+Pg3/CrNhFMZvNq1iHESKkhv8=
15-
github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62 h1:IGtvsNyIuRjl04XAOFGACozgUD7A82UffYxZt4DWbvA=
16-
github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62/go.mod h1:biJCRbqp51wS+I92HMqn5H8/A0PAhxn2vyOT+JqhiGI=
175
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
186
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
197
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
@@ -28,38 +16,16 @@ github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
2816
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
2917
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
3018
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
31-
github.com/google/go-dap v0.12.0 h1:rVcjv3SyMIrpaOoTAdFDyHs99CwVOItIJGKLQFQhNeM=
32-
github.com/google/go-dap v0.12.0/go.mod h1:tNjCASCm5cqePi/RVXXWEVqtnNLV1KTWtYOqu6rZNzc=
3319
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
3420
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
3521
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
3622
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
37-
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
38-
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
39-
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
40-
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
4123
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
4224
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
43-
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
44-
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
45-
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
46-
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
47-
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
48-
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
49-
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
50-
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
5125
github.com/nsqio/go-nsq v1.1.0 h1:PQg+xxiUjA7V+TLdXw7nVrJ5Jbl3sN86EhGCQj4+FYE=
5226
github.com/nsqio/go-nsq v1.1.0/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY=
5327
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
5428
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
55-
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
56-
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
57-
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
58-
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
59-
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
60-
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
61-
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
62-
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
6329
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
6430
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
6531
github.com/tidwall/assert v0.1.0 h1:aWcKyRBUAdLoVebxo95N7+YZVTFF/ASTr7BN4sLP6XI=
@@ -88,18 +54,12 @@ github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21
8854
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
8955
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
9056
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
91-
go.starlark.net v0.0.0-20231101134539-556fd59b42f6 h1:+eC0F/k4aBLC4szgOcjd7bDTEnpxADJyWJE0yowgM3E=
92-
go.starlark.net v0.0.0-20231101134539-556fd59b42f6/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM=
9357
go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
9458
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
95-
golang.org/x/arch v0.11.0 h1:KXV8WWKCXm6tRpLirl2szsO5j/oOODwZf4hATmGVNs4=
96-
golang.org/x/arch v0.11.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
9759
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
9860
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
9961
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
10062
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
101-
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 h1:Jvc7gsqn21cJHCmAWx0LiimpP18LZmUxkT5Mp7EZ1mI=
102-
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
10363
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
10464
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
10565
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -108,22 +68,13 @@ golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
10868
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
10969
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
11070
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
111-
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
112-
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
11371
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
11472
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
11573
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
11674
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
11775
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
118-
golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
119-
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
120-
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
121-
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
122-
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
12376
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
12477
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
125-
golang.org/x/telemetry v0.0.0-20241106142447-58a1122356f5 h1:TCDqnvbBsFapViksHcHySl/sW4+rTGNIAoJJesHRuMM=
126-
golang.org/x/telemetry v0.0.0-20241106142447-58a1122356f5/go.mod h1:8nZWdGp9pq73ZI//QJyckMQab3yq7hoWi7SI0UIusVI=
12778
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
12879
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
12980
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=

handler.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@ func (h Handler) routes(mux *http.ServeMux) {
127127
mux.HandleFunc("/api/user/update", rootMiddleware(handlerPkg.HandleGenericPost(h.updateUserUC.Handle)))
128128
mux.HandleFunc("/api/user/assign-to-group", rootMiddleware(handlerPkg.HandleGenericPost(h.assignUserToGroupUC.Handle)))
129129
mux.HandleFunc("/api/user/delete", rootMiddleware(handlerPkg.HandleGenericPost(h.deleteUserUC.Handle)))
130+
mux.HandleFunc("/api/user/change-password", handlerPkg.HandleGenericPost(h.changePasswordUC.Handle))
131+
mux.HandleFunc("/api/user/reset-password", handlerPkg.HandleGetPost(
132+
h.resetPasswordUC.HandleGet,
133+
h.resetPasswordUC.HandlePost,
134+
))
130135

131136
mux.HandleFunc("/api/change-password", handlerPkg.HandleGenericPost(h.changePasswordUC.Handle))
132137
mux.HandleFunc("/api/sync-topics", handlerPkg.HandleGenericGet(h.syncTopicsUC.HandleQuery))
@@ -158,12 +163,16 @@ func (h Handler) routes(mux *http.ServeMux) {
158163

159164
mux.HandleFunc("/api/topic/detail", sessionMiddleware(handlerPkg.HandleGenericGet(h.getTopicDetailUC.HandleQuery)))
160165
mux.HandleFunc("/api/topic/stats", sessionMiddleware(handlerPkg.HandleGenericGet(h.getTopicStatsUC.HandleQuery)))
161-
mux.HandleFunc("/api/entity/update-description", sessionMiddleware(handlerPkg.HandleGenericPost(h.updateDescriptionUC.Save)))
162166
mux.HandleFunc("/api/entity/toggle-bookmark", authMiddleware(handlerPkg.HandleGenericPost(h.toggleBookmarkUC.Toggle)))
163167

164168
// this middleware is action auth required
165169
actionAuthMiddleware := handlerPkg.InitActionAuthMiddleware(string(h.config.SecretKey), h.checkActionAuthUC)
166170

171+
mux.HandleFunc("/api/entity/update-description", sessionMiddleware(actionAuthMiddleware(
172+
handlerPkg.HandleGenericPost(h.updateDescriptionUC.Save),
173+
acl.Permission_Entity_Desc_Update.Name,
174+
)))
175+
167176
mux.HandleFunc("/api/topic/publish", sessionMiddleware(actionAuthMiddleware(
168177
handlerPkg.HandleGenericPost(h.getTopicDetailUC.HandlePublish),
169178
acl.Permission_Topic_Publish.Name,

infra/test_script/Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM golang:1.23-alpine
2+
WORKDIR /app
3+
COPY . .
4+
RUN go mod download
5+
CMD ["go", "test", "./..."]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
version: '3.8'
2+
services:
3+
topic-master:
4+
build:
5+
context: ../../
6+
dockerfile: Dockerfile
7+
image: topic-master:latest
8+
container_name: topic-master
9+
command:
10+
- -data_path=/app/infra/test_data/
11+
- -port=4181
12+
- -nsqlookupd_http_address=http://nsqlookupd:4161
13+
environment:
14+
- TOPIC_MASTER_ROOT_PASS=rootroot
15+
ports:
16+
- 4181:4181
17+
networks:
18+
- topic_master_network
19+
test-script:
20+
build:
21+
context: .
22+
dockerfile: Dockerfile
23+
image: test-script:latest
24+
container_name: test-script
25+
environment:
26+
- TOPIC_MASTER_HOST=http://topic-master:4181
27+
depends_on:
28+
- topic-master
29+
networks:
30+
- topic_master_network
31+
networks:
32+
topic_master_network:
33+
external: true

0 commit comments

Comments
 (0)