Skip to content

Commit 2673b12

Browse files
authored
chore(web): fix local web dev setup (#2229)
1 parent 19dad7a commit 2673b12

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

web/static.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ func (web *Web) RegisterRoutes(router *mux.Router) {
129129

130130
var webFS http.Handler
131131
if os.Getenv("EC_DEV_ENV") == "true" {
132-
webFS = http.FileServer(http.FS(os.DirFS("./web/dist/assets")))
132+
webFS = http.FileServer(http.FS(os.DirFS("./dist")))
133133
} else {
134134
webFS = http.FileServer(http.FS(web.assets))
135135
}

web/static_test.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,3 +314,58 @@ func TestRegisterRoutes(t *testing.T) {
314314
assert.Equal(t, "console.log('Hello, world!');", recorder.Body.String(), "Response should contain the JS content")
315315
})
316316
}
317+
func TestRegisterRoutesWithDevEnv(t *testing.T) {
318+
// Create initial state
319+
initialState := InitialState{
320+
Title: "Test Title",
321+
Icon: "test-icon.png",
322+
}
323+
324+
// Create a test logger
325+
logger, _ := logtest.NewNullLogger()
326+
327+
// Create a new Web instance
328+
web, err := New(initialState, WithLogger(logger), WithAssetsFS(createMockFS()))
329+
require.NoError(t, err, "Failed to create Web instance")
330+
331+
// Create temporary dist directory structure for development
332+
err = os.MkdirAll("dist/assets", 0755)
333+
require.NoError(t, err, "Failed to create dist directory")
334+
defer os.RemoveAll("dist/assets") // Clean up after test
335+
336+
// Create a test file in the dist/assets directory
337+
devFileContent := "console.log('Development mode!');"
338+
err = os.WriteFile("dist/assets/test-file-dev-app.js", []byte(devFileContent), 0644)
339+
require.NoError(t, err, "Failed to write dev file")
340+
341+
// Set the development environment variable
342+
t.Setenv("EC_DEV_ENV", "true")
343+
// Create router and register routes
344+
router := mux.NewRouter()
345+
web.RegisterRoutes(router)
346+
347+
t.Run("Dev File from Local Filesystem", func(t *testing.T) {
348+
req := httptest.NewRequest("GET", "/assets/test-file-dev-app.js", nil)
349+
recorder := httptest.NewRecorder()
350+
351+
// Serve the request
352+
router.ServeHTTP(recorder, req)
353+
354+
// Check status code
355+
assert.Equal(t, http.StatusOK, recorder.Code, "Should return status OK for dev file")
356+
357+
// Check that the dev file content is served from local filesystem
358+
assert.Equal(t, devFileContent, recorder.Body.String(), "Response should contain the dev file content from local filesystem")
359+
})
360+
361+
t.Run("Non-existent File Returns 404", func(t *testing.T) {
362+
req := httptest.NewRequest("GET", "/assets/non-existent.js", nil)
363+
recorder := httptest.NewRecorder()
364+
365+
// Serve the request
366+
router.ServeHTTP(recorder, req)
367+
368+
// Check status code - should be 404 when file doesn't exist in local filesystem
369+
assert.Equal(t, http.StatusNotFound, recorder.Code, "Should return 404 for non-existent file in dev mode")
370+
})
371+
}

0 commit comments

Comments
 (0)