github.com/leowmjw/otto@v0.2.1-0.20160126165905-6400716cf085/otto/testing_acceptance_test.go (about)

     1  package otto
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  	"testing"
     7  )
     8  
     9  func init() {
    10  	testTesting = true
    11  
    12  	if err := os.Setenv(TestEnvVar, "1"); err != nil {
    13  		panic(err)
    14  	}
    15  }
    16  
    17  func TestTest_noEnv(t *testing.T) {
    18  	// Unset the variable
    19  	if err := os.Setenv(TestEnvVar, ""); err != nil {
    20  		t.Fatalf("err: %s", err)
    21  	}
    22  	defer os.Setenv(TestEnvVar, "1")
    23  
    24  	mt := new(mockT)
    25  	Test(mt, TestCase{})
    26  
    27  	if !mt.SkipCalled {
    28  		t.Fatal("skip not called")
    29  	}
    30  }
    31  
    32  func TestTest_preCheck(t *testing.T) {
    33  	called := false
    34  
    35  	mt := new(mockT)
    36  	Test(mt, TestCase{
    37  		PreCheck: func() { called = true },
    38  		Core: TestCore(t, &TestCoreOpts{
    39  			Path: filepath.Join("./test-fixtures", "basic", "Appfile"),
    40  		}),
    41  	})
    42  
    43  	if !called {
    44  		t.Fatal("precheck should be called")
    45  	}
    46  }
    47  
    48  // mockT implements TestT for testing
    49  type mockT struct {
    50  	ErrorCalled bool
    51  	ErrorArgs   []interface{}
    52  	FatalCalled bool
    53  	FatalArgs   []interface{}
    54  	SkipCalled  bool
    55  	SkipArgs    []interface{}
    56  
    57  	f bool
    58  }
    59  
    60  func (t *mockT) Error(args ...interface{}) {
    61  	t.ErrorCalled = true
    62  	t.ErrorArgs = args
    63  	t.f = true
    64  }
    65  
    66  func (t *mockT) Fatal(args ...interface{}) {
    67  	t.FatalCalled = true
    68  	t.FatalArgs = args
    69  	t.f = true
    70  }
    71  
    72  func (t *mockT) Skip(args ...interface{}) {
    73  	t.SkipCalled = true
    74  	t.SkipArgs = args
    75  	t.f = true
    76  }
    77  
    78  func (t *mockT) failed() bool {
    79  	return t.f
    80  }
    81  
    82  func (t *mockT) failMessage() string {
    83  	if t.FatalCalled {
    84  		return t.FatalArgs[0].(string)
    85  	} else if t.ErrorCalled {
    86  		return t.ErrorArgs[0].(string)
    87  	} else if t.SkipCalled {
    88  		return t.SkipArgs[0].(string)
    89  	}
    90  
    91  	return "unknown"
    92  }