fs_test.go (2278B)
1 package resource 2 3 import ( 4 "context" 5 "os" 6 "path" 7 "testing" 8 9 "git.defalsify.org/vise.git/lang" 10 ) 11 12 func TestNewFs(t *testing.T) { 13 n := NewFsResource("./testdata") 14 _ = n 15 } 16 17 func TestResourceLanguage(t *testing.T) { 18 lang, err := lang.LanguageFromCode("nor") 19 if err != nil { 20 t.Fatal(err) 21 } 22 ctx := context.TODO() 23 24 dir, err := os.MkdirTemp("", "vise_fsresource") 25 if err != nil { 26 t.Fatal(err) 27 } 28 29 fp := path.Join(dir, "foo") 30 tmpl := "one two three" 31 err = os.WriteFile(fp, []byte(tmpl), 0600) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 rs := NewFsResource(dir) 37 r, err := rs.GetTemplate(ctx, "foo") 38 if err != nil { 39 t.Fatal(err) 40 } 41 if r != tmpl { 42 t.Fatalf("expected '%s', got '%s'", tmpl, r) 43 } 44 45 ctx = context.WithValue(ctx, "Language", lang) 46 rs = NewFsResource(dir) 47 r, err = rs.GetTemplate(ctx, "foo") 48 if err != nil { 49 t.Fatal(err) 50 } 51 if r != tmpl { 52 t.Fatalf("expected '%s', got '%s'", tmpl, r) 53 } 54 55 tmpl = "en to tre" 56 err = os.WriteFile(fp + "_nor", []byte(tmpl), 0600) 57 if err != nil { 58 t.Fatal(err) 59 } 60 r, err = rs.GetTemplate(ctx, "foo") 61 if err != nil { 62 t.Fatal(err) 63 } 64 if r != tmpl { 65 t.Fatalf("expected '%s', got '%s'", tmpl, r) 66 } 67 } 68 69 func TestResourceMenuLanguage(t *testing.T) { 70 lang, err := lang.LanguageFromCode("nor") 71 if err != nil { 72 t.Fatal(err) 73 } 74 ctx := context.TODO() 75 76 dir, err := os.MkdirTemp("", "vise_fsresource") 77 if err != nil { 78 t.Fatal(err) 79 } 80 rs := NewFsResource(dir) 81 82 r, err := rs.GetMenu(ctx, "foo") 83 if err != nil { 84 t.Fatal(err) 85 } 86 if r != "foo" { 87 t.Fatalf("expected 'foo', got '%s'", r) 88 } 89 90 fp := path.Join(dir, "foo_menu") 91 menu := "foo bar" 92 err = os.WriteFile(fp, []byte(menu), 0600) 93 if err != nil { 94 t.Fatal(err) 95 } 96 r, err = rs.GetMenu(ctx, "foo") 97 if err != nil { 98 t.Fatal(err) 99 } 100 if r != menu { 101 t.Fatalf("expected '%s', got '%s'", menu, r) 102 } 103 104 ctx = context.WithValue(ctx, "Language", lang) 105 r, err = rs.GetMenu(ctx, "foo") 106 if err != nil { 107 t.Fatal(err) 108 } 109 if r != menu { 110 t.Fatalf("expected '%s', got '%s'", menu, r) 111 } 112 113 fp = path.Join(dir, "foo_menu_nor") 114 menu = "baz bar" 115 err = os.WriteFile(fp, []byte(menu), 0600) 116 if err != nil { 117 t.Fatal(err) 118 } 119 r, err = rs.GetMenu(ctx, "foo") 120 if err != nil { 121 t.Fatal(err) 122 } 123 if r != menu { 124 t.Fatalf("expected '%s', got '%s'", menu, r) 125 } 126 }