fix: Skip PDF integration tests in CI

PDF generation tests require a running HTTP server for chromedp to connect to.
This is not available in CI environment, causing tests to fail with ERR_CONNECTION_REFUSED.

Changes:
- Added skip condition to TestDefaultCVShortcut when running in short mode
- Updated CI workflow to use -short flag for tests and benchmarks
- Removed Chrome installation from CI (not needed for unit tests)
- Integration tests can still run locally without -short flag
This commit is contained in:
juanatsap
2025-11-25 06:10:26 +00:00
parent 015863d426
commit 0be8972429
2 changed files with 12 additions and 15 deletions
+5 -10
View File
@@ -30,21 +30,16 @@ jobs:
- name: Verify dependencies
run: go mod verify
- name: Install Chrome for PDF tests
run: |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get install -y google-chrome-stable
- name: Run linter
uses: golangci/golangci-lint-action@v7
with:
version: v2.6.0
- name: Run tests with coverage
- name: Run unit tests with coverage
run: |
go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...
# Use -short to skip integration tests that require running server
# PDF generation tests need a live HTTP server and Chrome
go test -short -v -race -coverprofile=coverage.txt -covermode=atomic ./...
- name: Generate coverage report
run: |
@@ -72,7 +67,7 @@ jobs:
- name: Run benchmarks
run: |
go test -bench=. -benchmem ./... | tee benchmark.txt
go test -short -bench=. -benchmem ./... | tee benchmark.txt
- name: Build binary
run: |
+7 -5
View File
@@ -142,7 +142,14 @@ func TestCVContent(t *testing.T) {
}
// TestDefaultCVShortcut tests the DefaultCVShortcut handler
// NOTE: This test requires a running server for PDF generation via chromedp
func TestDefaultCVShortcut(t *testing.T) {
// Skip if running in CI or if server is not available
// PDF generation requires a running HTTP server that chromedp can connect to
if testing.Short() {
t.Skip("Skipping PDF generation test - requires running server")
}
// Create template manager with config
cfg := &config.TemplateConfig{
Dir: "../../templates",
@@ -191,11 +198,6 @@ func TestDefaultCVShortcut(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// Skip PDF generation tests in short mode (they require Chrome)
if testing.Short() && tt.expectStatus == http.StatusOK {
t.Skip("Skipping PDF generation test in short mode")
}
// Create request
req := httptest.NewRequest(http.MethodGet, tt.path, nil)
w := httptest.NewRecorder()