mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2025-12-30 16:24:26 +00:00
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package staticweb_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/bitechdev/ResolveSpec/pkg/server/staticweb"
|
|
staticwebtesting "github.com/bitechdev/ResolveSpec/pkg/server/staticweb/testing"
|
|
)
|
|
|
|
// Example_reload demonstrates reloading content when files change.
|
|
func Example_reload() {
|
|
service := staticweb.NewService(nil)
|
|
|
|
// Create a provider
|
|
provider := staticwebtesting.NewMockProvider(map[string][]byte{
|
|
"version.txt": []byte("v1.0.0"),
|
|
})
|
|
|
|
service.Mount(staticweb.MountConfig{
|
|
URLPrefix: "/static",
|
|
Provider: provider,
|
|
})
|
|
|
|
// Simulate updating the file
|
|
provider.AddFile("version.txt", []byte("v2.0.0"))
|
|
|
|
// Reload to pick up changes (in real usage with zip files)
|
|
err := service.Reload()
|
|
if err != nil {
|
|
fmt.Printf("Failed to reload: %v\n", err)
|
|
} else {
|
|
fmt.Println("Successfully reloaded static files")
|
|
}
|
|
|
|
// Output: Successfully reloaded static files
|
|
}
|
|
|
|
// Example_reloadZip demonstrates reloading a zip file provider.
|
|
func Example_reloadZip() {
|
|
service := staticweb.NewService(nil)
|
|
|
|
// In production, you would use:
|
|
// provider, _ := staticweb.ZipProvider("./dist.zip")
|
|
// For this example, we use a mock
|
|
provider := staticwebtesting.NewMockProvider(map[string][]byte{
|
|
"app.js": []byte("console.log('v1')"),
|
|
})
|
|
|
|
service.Mount(staticweb.MountConfig{
|
|
URLPrefix: "/app",
|
|
Provider: provider,
|
|
})
|
|
|
|
fmt.Println("Serving from zip file")
|
|
|
|
// When the zip file is updated, call Reload()
|
|
// service.Reload()
|
|
|
|
// Output: Serving from zip file
|
|
}
|