diff --git a/internal/cli/server/server_test.go b/internal/cli/server/server_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..070739c6874249a3574e8766330cd4c51df5afe3
--- /dev/null
+++ b/internal/cli/server/server_test.go
@@ -0,0 +1,41 @@
+package server
+
+import (
+	"testing"
+	"time"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestServer_DeveloperMode(t *testing.T) {
+
+	// get the default config
+	config := DefaultConfig()
+
+	// enable developer mode
+	config.Developer.Enabled = true
+	config.Developer.Period = 2 // block time
+
+	// start the server
+	server, err1 := NewServer(config)
+	if err1 != nil {
+		t.Fatalf("failed to start server: %v", err1)
+	}
+
+	// record the initial block number
+	blockNumber := server.backend.BlockChain().CurrentBlock().Header().Number.Int64()
+
+	var i int64 = 0
+	for i = 0; i < 10; i++ {
+		// We expect the node to mine blocks every `config.Developer.Period` time period
+		time.Sleep(time.Duration(config.Developer.Period) * time.Second)
+		currBlock := server.backend.BlockChain().CurrentBlock().Header().Number.Int64()
+		expected := blockNumber + i + 1
+		if res := assert.Equal(t, currBlock, expected); res == false {
+			break
+		}
+	}
+
+	// stop the server
+	server.Stop()
+}