about summary refs log tree commit diff
path: root/pkg/lang/scanner/scanner_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/scanner/scanner_test.go')
-rw-r--r--pkg/lang/scanner/scanner_test.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/lang/scanner/scanner_test.go b/pkg/lang/scanner/scanner_test.go
new file mode 100644
index 0000000..2948a58
--- /dev/null
+++ b/pkg/lang/scanner/scanner_test.go
@@ -0,0 +1,29 @@
+package scanner_test
+
+import (
+	"jinx/pkg/lang/scanner"
+	"jinx/pkg/lang/scanner/token"
+	"strings"
+	"testing"
+
+	"github.com/stretchr/testify/require"
+)
+
+func TestBasic(t *testing.T) {
+	source := "var x = 1"
+
+	s := scanner.New(strings.NewReader(source))
+
+	tokens, err := s.Scan()
+	require.NoError(t, err)
+
+	expected := []token.Token{
+		token.Simple(token.KwVar, token.Loc{Row: 0, Col: 0}),
+		token.New(token.Ident, token.Loc{Row: 0, Col: 4}, "x"),
+		token.Simple(token.Assign, token.Loc{Row: 0, Col: 6}),
+		token.New(token.Int, token.Loc{Row: 0, Col: 8}, uint64(1)),
+		token.Simple(token.EOF, token.Loc{Row: 0, Col: 9}),
+	}
+
+	require.Equal(t, expected, tokens)
+}