github.com/qri-io/qri@v0.10.1-0.20220104210721-c771715036cb/base/dsfs/dstest/dstest_test.go (about) 1 package dstest 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "os" 7 "testing" 8 9 "github.com/qri-io/dataset" 10 ) 11 12 func TestDatasetChecksum(t *testing.T) { 13 expect := "085e607818aae2920e0e4b57c321c3b58e17b85d" 14 sum := DatasetChecksum(&dataset.Dataset{}) 15 if sum != expect { 16 t.Errorf("empty pod hash mismatch. expected: %s, got: %s", expect, sum) 17 } 18 } 19 20 func TestLoadTestCases(t *testing.T) { 21 tcs, err := LoadTestCases("testdata") 22 if err != nil { 23 t.Error(err) 24 } 25 if len(tcs) == 0 { 26 t.Errorf("expected at least one test case to load") 27 } 28 } 29 30 func TestBodyFilepath(t *testing.T) { 31 fp, err := BodyFilepath("testdata/complete") 32 if err != nil { 33 t.Error(err.Error()) 34 return 35 } 36 if fp != "testdata/complete/body.csv" { 37 t.Errorf("%s != %s", "testdata/complete/body.csv", fp) 38 } 39 } 40 41 func TestReadInputTransformScript(t *testing.T) { 42 if _, _, err := ReadInputTransformScript("bad_dir"); err != os.ErrNotExist { 43 t.Error("expected os.ErrNotExist on bad tf script read") 44 } 45 } 46 47 func TestNewTestCaseFromDir(t *testing.T) { 48 var err error 49 if _, err = NewTestCaseFromDir("testdata"); err == nil { 50 t.Errorf("expected error") 51 return 52 } 53 54 tc, err := NewTestCaseFromDir("testdata/complete") 55 if err != nil { 56 t.Errorf("error reading test dir: %s", err.Error()) 57 return 58 } 59 60 name := "complete" 61 if tc.Name != name { 62 t.Errorf("expected name to equal: %s. got: %s", name, tc.Name) 63 } 64 65 fn := "body.csv" 66 if tc.BodyFilename != fn { 67 t.Errorf("expected BodyFilename to equal: %s. got: %s", fn, tc.BodyFilename) 68 } 69 70 data := []byte(`city,pop,avg_age,in_usa 71 toronto,40000000,55.5,false 72 new york,8500000,44.4,true 73 chicago,300000,44.4,true 74 chatham,35000,65.25,true 75 raleigh,250000,50.65,true 76 `) 77 if !bytes.Equal(tc.Body, data) { 78 t.Errorf("data mismatch") 79 } 80 81 mf := tc.BodyFile() 82 if mf.FileName() != tc.BodyFilename { 83 t.Errorf("filename mismatch: %s != %s", mf.FileName(), tc.BodyFilename) 84 } 85 86 if ts, ok := tc.TransformScriptFile(); !ok { 87 t.Errorf("expected tranform script to load") 88 } else { 89 if ts.FileName() != "transform.star" { 90 t.Errorf("expected TransformScript filename to be transform.star") 91 } 92 } 93 tc.TransformScript = nil 94 if _, ok := tc.TransformScriptFile(); ok { 95 t.Error("shouldn't generate TransformScript File if bytes are nil") 96 } 97 98 if vz, ok := tc.VizScriptFile(); !ok { 99 t.Errorf("expected viz script to load") 100 } else { 101 if vz.FileName() != "template.html" { 102 t.Errorf("expected VizScript filename to be template.html") 103 } 104 } 105 tc.VizScript = nil 106 if _, ok := tc.VizScriptFile(); ok { 107 t.Error("shouldn't generate VizScript File if bytes are nil") 108 } 109 110 mfdata, err := ioutil.ReadAll(mf) 111 if err != nil { 112 t.Errorf("error reading file: %s", err.Error()) 113 } 114 115 if !bytes.Equal(mfdata, data) { 116 t.Errorf("memfile data mismatch") 117 } 118 119 rendered, err := tc.RenderedFile() 120 if err != nil { 121 t.Errorf("reading %s: %s", RenderedFilename, err) 122 } 123 if rendered == nil { 124 t.Error("expected rendered to not equal nil") 125 } 126 }