Commit 22b1da5
authored
test, check: assertive tests, runnable examples, real ActivityConf compatibility check, and CheckError→Error rename (#33)
* test: replace test/main.go runner with assertive unit tests
- Remove test/main.go and the corresponding `go run .` step in the CI
testing workflow; everything previously exercised there is now covered
by `go test`.
- Move `Filter`, `protoPkg`, `pathPrefix` into test/main_test.go so the
test directory is self-contained.
- Strengthen assertions in TestLoad / TestCheck / TestCheckCompatibility:
validate Issue.Kind, Message prefixes ("load failed:" /
"custom check failed:"), Workbook/Worksheet names, the exact text
output for the single-issue Check case, and JSON payload keys
("workbook":, "worksheet":, "load failed:, "custom check failed:).
- Mark the generated error.<ext>.go header with "DO NOT EDIT" by passing
doNotEdit=true in generateError, since the whole file is templated and
not meant to be hand-edited. Regenerated test/check/error.check.go to
match.
* refactor(check): rename CheckError to Error and Issue.Error to Issue.String
Resolve two lint findings (revive `exported`/stutter and `errname`) on
the generated check package without weakening semantics:
- CheckError -> Error: avoid the `check.CheckError` stutter at the call
site; consumers now use `check.Error`, which is the conventional Go
name for a package's primary error type.
- Issue.Error() -> Issue.String(): a single Issue is a diagnostic
record, not an error value. The aggregate `*Error` is what implements
the `error` interface; an individual `*Issue` now satisfies
`fmt.Stringer` instead, so `errname` no longer flags it.
Updated both code generator templates (error.go.tpl, hub.go.tpl) and
regenerated test/check/error.check.go and test/check/hub.check.go.
test/main_test.go is updated to use *check.Error in errors.As targets.
Verified with `go vet ./...` and `go test ./...` (all green).
* feat: add CSV load origin checking and update deps
* test: add runnable examples for Hub.Check and Hub.CheckCompatibility
Port the previously deleted test/main.go demo into Go example tests so the
canonical Hub.Check / Hub.CheckCompatibility usage stays exercised by
`go test` and discoverable via `go doc`.
- Example_check: invokes Check on testdata/ with BreakFailedCount(1) so a
single deterministic custom-check error is asserted via `// Output:`.
- Example_checkCompatibility: invokes CheckCompatibility on testdata/ vs
testdata1/ with SkipLoadErrors and BreakFailedCount(10); unwraps the
returned *check.Error, sorts issues by (workbook, worksheet, kind), and
prints `[kind] workbook/worksheet: <first-line-of-message>` for each
issue. Sorting + first-line-only formatting eliminates ordering and
prototext map non-determinism, allowing a full `// Output:` assertion
over all collected issues.
* feat: implement ActivityConf compatibility check
Replace the placeholder CheckCompatibility method with a real implementation
that detects removed item IDs between old and new config snapshots. Update
tests and examples to reflect the new behavior and simplify deterministic
output handling.1 parent 718fa64 commit 22b1da5
18 files changed
Lines changed: 412 additions & 171 deletions
File tree
- .github/workflows
- cmd/protoc-gen-go-tableau-checker
- embed/templates
- test
- check
- proto
- testdata2
- testdata3
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | 52 | | |
57 | 53 | | |
58 | 54 | | |
| |||
Lines changed: 12 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | | - | |
| 28 | + | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
66 | | - | |
| 65 | + | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | | - | |
78 | | - | |
| 77 | + | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
88 | | - | |
| 87 | + | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
193 | | - | |
| 193 | + | |
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | | - | |
| 197 | + | |
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
214 | | - | |
| 214 | + | |
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
219 | | - | |
| 219 | + | |
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
16 | 20 | | |
17 | 21 | | |
18 | | - | |
| 22 | + | |
19 | 23 | | |
20 | 24 | | |
21 | 25 | | |
22 | 26 | | |
23 | 27 | | |
24 | 28 | | |
25 | | - | |
| 29 | + | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
29 | | - | |
30 | 33 | | |
31 | | - | |
| 34 | + | |
32 | 35 | | |
| 36 | + | |
33 | 37 | | |
34 | 38 | | |
35 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
36 | 42 | | |
37 | 43 | | |
38 | 44 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
1 | 7 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
9 | 16 | | |
10 | 17 | | |
11 | 18 | | |
12 | 19 | | |
| 20 | + | |
| 21 | + | |
13 | 22 | | |
14 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
15 | 28 | | |
16 | 29 | | |
17 | 30 | | |
18 | 31 | | |
19 | 32 | | |
20 | 33 | | |
21 | | - | |
22 | | - | |
23 | 34 | | |
24 | 35 | | |
25 | 36 | | |
| |||
29 | 40 | | |
30 | 41 | | |
31 | 42 | | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
36 | 47 | | |
37 | 48 | | |
38 | 49 | | |
39 | 50 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
44 | 55 | | |
45 | 56 | | |
46 | 57 | | |
47 | 58 | | |
48 | 59 | | |
49 | 60 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
| 61 | + | |
| 62 | + | |
54 | 63 | | |
55 | 64 | | |
56 | | - | |
57 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
58 | 69 | | |
59 | 70 | | |
| 71 | + | |
| 72 | + | |
60 | 73 | | |
61 | 74 | | |
62 | 75 | | |
63 | 76 | | |
64 | 77 | | |
65 | 78 | | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
71 | 87 | | |
| 88 | + | |
| 89 | + | |
72 | 90 | | |
73 | 91 | | |
74 | 92 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments