Monorepo for Tangled
tangled.org
1package git
2
3import (
4 "context"
5 "strings"
6 "testing"
7
8 "github.com/stretchr/testify/require"
9 "github.com/stretchr/testify/suite"
10)
11
12type LanguageSuite struct {
13 suite.Suite
14 *RepoSuite
15}
16
17func TestLanguageSuite(t *testing.T) {
18 t.Parallel()
19 suite.Run(t, new(LanguageSuite))
20}
21
22func (s *LanguageSuite) SetupTest() {
23 s.RepoSuite = NewRepoSuite(s.T())
24}
25
26func (s *LanguageSuite) TearDownTest() {
27 s.RepoSuite.cleanup()
28}
29
30func (s *LanguageSuite) TestAnalyzeLanguagesSkipsUnknownGodotMetadata() {
31 s.init()
32
33 gdscript := "extends CharacterBody3D\n\nfunc _ready():\n\tpass\n"
34 s.commitFile("code/player.gd", gdscript, "Add GDScript")
35 s.commitFile("code/player.gd.uid", "uid://b5gy7avoc3cs1\n", "Add Godot uid")
36 s.commitFile(
37 "assets/player.glb.import",
38 "[remap]\n\nimporter=\"scene\"\n\n[params]\n"+strings.Repeat("animation/import=true\n", 512),
39 "Add Godot import metadata",
40 )
41 s.commitFile(
42 "scenes/player.tscn",
43 "[gd_scene format=4]\n\n[sub_resource type=\"ArrayMesh\"]\n"+strings.Repeat("vertex_data = PackedByteArray(\"AAAA\")\n", 512),
44 "Add Godot scene",
45 )
46
47 gr, err := Open(s.repo.path, "")
48 require.NoError(s.T(), err)
49
50 langs, err := gr.AnalyzeLanguages(context.Background())
51 require.NoError(s.T(), err)
52
53 require.NotContains(s.T(), langs, "")
54 require.Equal(s.T(), LangBreakdown{
55 "GDScript": int64(len(gdscript)),
56 }, langs)
57}