Ensure the fake filesystem used in concatjs_test.go is thread-safe.

PiperOrigin-RevId: 271627870
diff --git a/devserver/concatjs/concatjs_test.go b/devserver/concatjs/concatjs_test.go
index 00793be..ddd1a47 100644
--- a/devserver/concatjs/concatjs_test.go
+++ b/devserver/concatjs/concatjs_test.go
@@ -8,6 +8,7 @@
 	"path/filepath"
 	"reflect"
 	"strings"
+	"sync"
 	"testing"
 	"time"
 )
@@ -42,20 +43,27 @@
 }
 
 type fakeFileSystem struct {
+	mux             sync.Mutex
 	fakeReadFile    func(filename string) ([]byte, error)
 	fakeStatMtime   func(filename string) (time.Time, error)
 	fakeResolvePath func(root string, filename string) (string, error)
 }
 
 func (fs *fakeFileSystem) ReadFile(filename string) ([]byte, error) {
+	fs.mux.Lock()
+	defer fs.mux.Unlock()
 	return fs.fakeReadFile(filename)
 }
 
 func (fs *fakeFileSystem) StatMtime(filename string) (time.Time, error) {
+	fs.mux.Lock()
+	defer fs.mux.Unlock()
 	return fs.fakeStatMtime(filename)
 }
 
-func (fs *fakeFileSystem) ResolvePath(root string,  filename string) (string, error) {
+func (fs *fakeFileSystem) ResolvePath(root string, filename string) (string, error) {
+	fs.mux.Lock()
+	defer fs.mux.Unlock()
 	return fs.fakeResolvePath(root, filename)
 }
 
@@ -167,7 +175,7 @@
 			}
 		},
 		fakeStatMtime: func(filename string) (time.Time, error) {
-				return time.Now(), nil
+			return time.Now(), nil
 		},
 		fakeResolvePath: func(root string, filename string) (string, error) {
 			// For this test, we use an absolute root. This is similar to how