Update code references and tests: Bookmann → Bookhoard
Code changes: - main.go: Update cache directory path - sidecar.go: Update file extension (.bookmann.json → .bookhoard.json) - security.go: Update CORS example URLs - queue_test.go: Update test database name - feed_test.go: Update test assertions - phase1_integration_test.go: Update test email addresses - TEST_COVERAGE.md: Update project references Part of project rename to Bookhoard.
This commit is contained in:
+1
-1
@@ -98,7 +98,7 @@ func main() {
|
|||||||
queueHandler := handlers.NewQueueHandler(queries, queueProcessor)
|
queueHandler := handlers.NewQueueHandler(queries, queueProcessor)
|
||||||
|
|
||||||
// Create conversion service for EPUB→KEPUB conversion
|
// Create conversion service for EPUB→KEPUB conversion
|
||||||
conversionService := services.NewConversionService(queries, "/var/bookmann/cache/kepub")
|
conversionService := services.NewConversionService(queries, "/var/bookhoard/cache/kepub")
|
||||||
opdsHandler := handlers.NewOPDSHandler(queries, conversionService)
|
opdsHandler := handlers.NewOPDSHandler(queries, conversionService)
|
||||||
|
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Test Coverage Report
|
# Test Coverage Report
|
||||||
|
|
||||||
This document provides a comprehensive overview of all test scenarios covering possible failure points in the Bookmann application.
|
This document provides a comprehensive overview of all test scenarios covering possible failure points in the Bookhoard application.
|
||||||
|
|
||||||
## Test Files
|
## Test Files
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ func TestPhase1Integration(t *testing.T) {
|
|||||||
t.Run("Cleanup_ExistingTestUser", func(t *testing.T) {
|
t.Run("Cleanup_ExistingTestUser", func(t *testing.T) {
|
||||||
// Try to login as the test user first
|
// Try to login as the test user first
|
||||||
loginReq := map[string]interface{}{
|
loginReq := map[string]interface{}{
|
||||||
"login": "admin@bookmann.test",
|
"login": "admin@bookhoard.test",
|
||||||
"password": "TestPassword123!@#",
|
"password": "TestPassword123!@#",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ func TestPhase1Integration(t *testing.T) {
|
|||||||
// Step 1: Create first user (should be admin)
|
// Step 1: Create first user (should be admin)
|
||||||
t.Run("Step1_CreateFirstUser", func(t *testing.T) {
|
t.Run("Step1_CreateFirstUser", func(t *testing.T) {
|
||||||
userReq := map[string]interface{}{
|
userReq := map[string]interface{}{
|
||||||
"email": "admin@bookmann.test",
|
"email": "admin@bookhoard.test",
|
||||||
"username": "admin",
|
"username": "admin",
|
||||||
"password": "TestPassword123!@#",
|
"password": "TestPassword123!@#",
|
||||||
"first_name": "Admin",
|
"first_name": "Admin",
|
||||||
@@ -120,7 +120,7 @@ func TestPhase1Integration(t *testing.T) {
|
|||||||
if resp.StatusCode == http.StatusConflict {
|
if resp.StatusCode == http.StatusConflict {
|
||||||
t.Logf("User already exists, logging in instead...")
|
t.Logf("User already exists, logging in instead...")
|
||||||
loginReq := map[string]interface{}{
|
loginReq := map[string]interface{}{
|
||||||
"login": "admin@bookmann.test",
|
"login": "admin@bookhoard.test",
|
||||||
"password": "TestPassword123!@#",
|
"password": "TestPassword123!@#",
|
||||||
}
|
}
|
||||||
body, _ := json.Marshal(loginReq)
|
body, _ := json.Marshal(loginReq)
|
||||||
@@ -146,7 +146,7 @@ func TestPhase1Integration(t *testing.T) {
|
|||||||
var adminToken string
|
var adminToken string
|
||||||
t.Run("LoginAsAdmin", func(t *testing.T) {
|
t.Run("LoginAsAdmin", func(t *testing.T) {
|
||||||
loginReq := map[string]interface{}{
|
loginReq := map[string]interface{}{
|
||||||
"login": "admin@bookmann.test",
|
"login": "admin@bookhoard.test",
|
||||||
"password": "TestPassword123!@#",
|
"password": "TestPassword123!@#",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ func (h *SidecarHandler) GetSidecarConfig(c echo.Context) error {
|
|||||||
return c.JSON(http.StatusOK, config)
|
return c.JSON(http.StatusOK, config)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DownloadSidecarConfig generates a .bookmann.json file for device setup
|
// DownloadSidecarConfig generates a .bookhoard.json file for device setup
|
||||||
// GET /api/devices/:device_id/sidecar/download
|
// GET /api/devices/:device_id/sidecar/download
|
||||||
func (h *SidecarHandler) DownloadSidecarConfig(c echo.Context) error {
|
func (h *SidecarHandler) DownloadSidecarConfig(c echo.Context) error {
|
||||||
deviceID, err := uuid.Parse(c.Param("device_id"))
|
deviceID, err := uuid.Parse(c.Param("device_id"))
|
||||||
@@ -324,7 +324,7 @@ func (h *SidecarHandler) DownloadSidecarConfig(c echo.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set headers for file download
|
// Set headers for file download
|
||||||
filename := fmt.Sprintf("%s.bookmann.json", sanitizeFilename(device.DeviceName))
|
filename := fmt.Sprintf("%s.bookhoard.json", sanitizeFilename(device.DeviceName))
|
||||||
c.Response().Header().Set("Content-Type", "application/json")
|
c.Response().Header().Set("Content-Type", "application/json")
|
||||||
c.Response().Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename))
|
c.Response().Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename))
|
||||||
|
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ type CORSSecurityConfig struct {
|
|||||||
func NewSecureCORSConfig() CORSSecurityConfig {
|
func NewSecureCORSConfig() CORSSecurityConfig {
|
||||||
return CORSSecurityConfig{
|
return CORSSecurityConfig{
|
||||||
AllowedOrigins: []string{
|
AllowedOrigins: []string{
|
||||||
"https://bookmann.example.com",
|
"https://bookhoard.example.com",
|
||||||
"https://*.bookmann.example.com",
|
"https://*.bookhoard.example.com",
|
||||||
},
|
},
|
||||||
AllowedMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"},
|
AllowedMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"},
|
||||||
AllowedHeaders: []string{
|
AllowedHeaders: []string{
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ func TestEntrySetIdentifier(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if entry.Identifier.ID != "bookhoard" {
|
if entry.Identifier.ID != "bookhoard" {
|
||||||
t.Errorf("expected Identifier ID to be 'bookmann', got '%s'", entry.Identifier.ID)
|
t.Errorf("expected Identifier ID to be 'bookhoard', got '%s'", entry.Identifier.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
if entry.Identifier.Content != "book-uuid-123" {
|
if entry.Identifier.Content != "book-uuid-123" {
|
||||||
@@ -139,7 +139,7 @@ func TestEntryAddMetadata(t *testing.T) {
|
|||||||
|
|
||||||
meta := entry.Metadata[0]
|
meta := entry.Metadata[0]
|
||||||
if meta.Property != "bookhoard:sha256" {
|
if meta.Property != "bookhoard:sha256" {
|
||||||
t.Errorf("expected Property to be 'bookmann:sha256', got '%s'", meta.Property)
|
t.Errorf("expected Property to be 'bookhoard:sha256', got '%s'", meta.Property)
|
||||||
}
|
}
|
||||||
|
|
||||||
if meta.Content != "abc123..." {
|
if meta.Content != "abc123..." {
|
||||||
|
|||||||
Reference in New Issue
Block a user