chore!: prepare for v1.0.0 release

Bumps the application version to 1.0.0, signaling the first stable release. This version consolidates several new features and breaking API changes.

This commit also includes various code quality improvements:
- Modernizes tests to use t.Setenv for safer environment variable handling.
- Addresses various linter warnings (gosec, errcheck).
- Updates loop syntax to use Go 1.22's range-over-integer feature.

BREAKING CHANGE: The public API has been updated for consistency and to introduce new features like context support and structured logging.
- `GetSupportedFormat()` is renamed to `SupportedFormat()`.
- `GetSupportedFormats()` is renamed to `SupportedFormats()`.
- `FetchCourse()` now requires a `context.Context` parameter.
- `NewArticulateParser()` constructor signature has been updated.
This commit is contained in:
2025-11-06 05:59:52 +01:00
parent 37927a36b6
commit 68c6f4e408
11 changed files with 45 additions and 20 deletions

View File

@ -27,7 +27,8 @@ func TestArticulateParser_FetchCourse_ContextCancellation(t *testing.T) {
Title: "Test Course",
},
}
json.NewEncoder(w).Encode(testCourse)
// Encode errors are ignored in test setup; httptest.ResponseWriter is reliable
_ = json.NewEncoder(w).Encode(testCourse)
}))
defer server.Close()
@ -69,7 +70,8 @@ func TestArticulateParser_FetchCourse_ContextTimeout(t *testing.T) {
Title: "Test Course",
},
}
json.NewEncoder(w).Encode(testCourse)
// Encode errors are ignored in test setup; httptest.ResponseWriter is reliable
_ = json.NewEncoder(w).Encode(testCourse)
}))
defer server.Close()
@ -111,7 +113,8 @@ func TestArticulateParser_FetchCourse_ContextDeadline(t *testing.T) {
Title: "Test Course",
},
}
json.NewEncoder(w).Encode(testCourse)
// Encode errors are ignored in test setup; httptest.ResponseWriter is reliable
_ = json.NewEncoder(w).Encode(testCourse)
}))
defer server.Close()
@ -152,7 +155,8 @@ func TestArticulateParser_FetchCourse_ContextSuccess(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Respond quickly
json.NewEncoder(w).Encode(testCourse)
// Encode errors are ignored in test setup; httptest.ResponseWriter is reliable
_ = json.NewEncoder(w).Encode(testCourse)
}))
defer server.Close()
@ -196,7 +200,8 @@ func TestArticulateParser_FetchCourse_CancellationDuringRequest(t *testing.T) {
testCourse := &models.Course{
ShareID: "test-id",
}
json.NewEncoder(w).Encode(testCourse)
// Encode errors are ignored in test setup; httptest.ResponseWriter is reliable
_ = json.NewEncoder(w).Encode(testCourse)
}))
defer server.Close()
@ -242,7 +247,8 @@ func TestArticulateParser_FetchCourse_MultipleTimeouts(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
time.Sleep(100 * time.Millisecond)
testCourse := &models.Course{ShareID: "test"}
json.NewEncoder(w).Encode(testCourse)
// Encode errors are ignored in test setup; httptest.ResponseWriter is reliable
_ = json.NewEncoder(w).Encode(testCourse)
}))
defer server.Close()