github.com/attic-labs/noms@v0.0.0-20210827224422-e5fa29d95e8b/samples/go/hr/main_test.go (about) 1 // Copyright 2016 Attic Labs, Inc. All rights reserved. 2 // Licensed under the Apache License, version 2.0: 3 // http://www.apache.org/licenses/LICENSE-2.0 4 5 package main 6 7 import ( 8 "path" 9 "runtime" 10 "testing" 11 12 "github.com/attic-labs/noms/go/spec" 13 "github.com/attic-labs/noms/go/util/clienttest" 14 "github.com/stretchr/testify/suite" 15 ) 16 17 func TestBasics(t *testing.T) { 18 suite.Run(t, &testSuite{}) 19 } 20 21 type testSuite struct { 22 clienttest.ClientTestSuite 23 } 24 25 func (s *testSuite) TestRoundTrip() { 26 spec := spec.CreateValueSpecString("nbs", s.DBDir, "hr") 27 stdout, stderr := s.MustRun(main, []string{"--ds", spec, "list-persons"}) 28 s.Equal("No people found\n", stdout) 29 s.Equal("", stderr) 30 31 stdout, stderr = s.MustRun(main, []string{"--ds", spec, "add-person", "42", "Benjamin Kalman", "Programmer, Barista"}) 32 s.Equal("", stdout) 33 s.Equal("", stderr) 34 35 stdout, stderr = s.MustRun(main, []string{"--ds", spec, "add-person", "43", "Abigail Boodman", "Chief Architect"}) 36 s.Equal("", stdout) 37 s.Equal("", stderr) 38 39 stdout, stderr = s.MustRun(main, []string{"--ds", spec, "list-persons"}) 40 s.Equal(`Benjamin Kalman (id: 42, title: Programmer, Barista) 41 Abigail Boodman (id: 43, title: Chief Architect) 42 `, stdout) 43 s.Equal("", stderr) 44 45 } 46 47 func (s *testSuite) TestReadCanned() { 48 _, p, _, _ := runtime.Caller(0) 49 p = path.Join(path.Dir(p), "test-data") 50 51 stdout, stderr := s.MustRun(main, []string{"--ds", spec.CreateValueSpecString("nbs", p, "hr"), "list-persons"}) 52 s.Equal(`Aaron Boodman (id: 7, title: Chief Evangelism Officer) 53 Samuel Boodman (id: 13, title: VP, Culture) 54 `, stdout) 55 s.Equal("", stderr) 56 } 57 58 func (s *testSuite) TestInvalidDatasetSpec() { 59 // Should not crash 60 _, _ = s.MustRun(main, []string{"--ds", "invalid-dataset", "list-persons"}) 61 }