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  }