github.com/laher/smoosh@v0.0.0-20180610101641-1e04c8740d38/main_test.go (about)

     1  package main
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/laher/smoosh/run"
    10  )
    11  
    12  func TestGood(t *testing.T) {
    13  	runner := run.NewRunner()
    14  	files, err := filepath.Glob("testdata/*.smoosh")
    15  	if err != nil {
    16  		t.Errorf("failed: %s", err)
    17  		t.FailNow()
    18  	}
    19  	pwd, _ := os.Getwd()
    20  	for _, f := range files {
    21  		t.Run(f, func(t *testing.T) {
    22  			//in case of directory changes in-script
    23  			_ = os.Chdir(pwd)
    24  			wbuf := bytes.NewBuffer([]byte{})
    25  			ebuf := bytes.NewBuffer([]byte{})
    26  			err := runner.RunFile(f, wbuf, ebuf)
    27  			if err != nil {
    28  				t.Errorf("Failed to run file: %v", err)
    29  			}
    30  		})
    31  	}
    32  }
    33  
    34  func TestBad(t *testing.T) {
    35  	runner := run.NewRunner()
    36  	files, err := filepath.Glob("testdata/bad/*.smoosh")
    37  	if err != nil {
    38  		t.Errorf("failed: %s", err)
    39  		t.FailNow()
    40  	}
    41  	pwd, _ := os.Getwd()
    42  	for _, f := range files {
    43  		t.Run(f, func(t *testing.T) {
    44  			//in case of directory changes in-script
    45  			_ = os.Chdir(pwd)
    46  			wbuf := bytes.NewBuffer([]byte{})
    47  			ebuf := bytes.NewBuffer([]byte{})
    48  			err := runner.RunFile(f, wbuf, ebuf)
    49  			if err != nil {
    50  				t.Logf("Error as expected ... '%s'", err)
    51  				return
    52  			}
    53  			t.Errorf("File should have errored")
    54  		})
    55  	}
    56  }