test: Add dependency graph marshal tests#4254
Conversation
| @@ -0,0 +1,371 @@ | |||
| // Copyright 2023 The go-github AUTHORS. All rights reserved. | |||
There was a problem hiding this comment.
Instead of creating a new file for this, please delete this file and add the tests to the end of the already-existing dependency_graph_test.go.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4254 +/- ##
=======================================
Coverage 97.48% 97.48%
=======================================
Files 190 190
Lines 19178 19178
=======================================
Hits 18695 18695
Misses 268 268
Partials 215 215 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Thanks, moved the marshal tests into the existing dependency_graph_test.go file and removed the standalone test file. Reran the focused marshal test group, go test ./github, go test ./..., and git diff --check. |
| func TestSBOM_Marshal(t *testing.T) { | ||
| testJSONMarshal(t, &SBOM{}, `{}`) |
There was a problem hiding this comment.
Please add t.Parallel() to this and the other tests otherwise, linter will complain.
| func TestSBOM_Marshal(t *testing.T) { | |
| testJSONMarshal(t, &SBOM{}, `{}`) | |
| func TestSBOM_Marshal(t *testing.T) { | |
| t.Parallel() | |
| testJSONMarshal(t, &SBOM{}, `{}`) |
| created := Timestamp{time.Date(2024, time.January, 2, 3, 4, 5, 0, time.UTC)} | ||
| u := &CreationInfo{ | ||
| Created: &created, | ||
| Creators: []string{"GitHub", "go-github"}, | ||
| } | ||
|
|
||
| want := `{ | ||
| "created": "2024-01-02T03:04:05Z", |
There was a problem hiding this comment.
Can we use referenceTime and referenceTimeStr for consistency?
Same applies for other tests.
| created := Timestamp{time.Date(2024, time.January, 2, 3, 4, 5, 0, time.UTC)} | |
| u := &CreationInfo{ | |
| Created: &created, | |
| Creators: []string{"GitHub", "go-github"}, | |
| } | |
| want := `{ | |
| "created": "2024-01-02T03:04:05Z", | |
| u := &CreationInfo{ | |
| Created: &Timestamp{referenceTime}, | |
| Creators: []string{"GitHub", "go-github"}, | |
| } | |
| want := `{ | |
| "created": ` + referenceTimeStr + `, |
Problem
Dependency graph and SBOM resource structs are newer API payloads, but their JSON marshal behavior was not covered by the resource-level marshal tests tracked by #55.
Root cause
The existing dependency graph tests focus on service request/response behavior. They do not round-trip the shared SBOM, dependency snapshot, manifest, detector, job, and creation response structs directly.
Solution
Add focused marshal tests for empty and populated dependency graph resource types, including SBOM metadata, package external refs, relationships, snapshot manifests, resolved dependencies, and snapshot creation data.
Tests run
Linked issue
Part of #55