github.com/ChicK00o/awgo@v0.29.4/workflow_paths_test.go (about)

     1  // Copyright (c) 2019 Dean Jackson <deanishe@deanishe.net>
     2  // MIT Licence applies http://opensource.org/licenses/MIT
     3  
     4  package aw
     5  
     6  import (
     7  	"os"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  	"github.com/stretchr/testify/require"
    12  )
    13  
    14  func TestReset(t *testing.T) {
    15  	withTestWf(func(wf *Workflow) {
    16  		s := wf.Dir()
    17  		x, err := os.Getwd()
    18  		require.Nil(t, err, "Getwd failed")
    19  		assert.Equal(t, x, s, "unexpected dir")
    20  
    21  		name := "xyz.json"
    22  		data := []byte("muh bytes")
    23  		err = wf.Cache.Store(name, data)
    24  		assert.Nil(t, err, "cache store failed")
    25  		err = wf.Data.Store(name, data)
    26  		assert.Nil(t, err, "data store failed")
    27  		err = wf.Session.Store(name, data)
    28  		assert.Nil(t, err, "session store failed")
    29  
    30  		assert.True(t, wf.Cache.Exists(name), "cache data do not exist")
    31  		assert.True(t, wf.Data.Exists(name), "data do not exist")
    32  		assert.True(t, wf.Session.Exists(name), "session data do not exist")
    33  
    34  		require.Nil(t, wf.Reset(), "reset failed")
    35  
    36  		assert.False(t, wf.Cache.Exists(name), "cache data exist")
    37  		assert.False(t, wf.Data.Exists(name), "data exist")
    38  		assert.False(t, wf.Session.Exists(name), "session data exist")
    39  	})
    40  }
    41  
    42  func TestWorkflowRoot(t *testing.T) {
    43  	withTestWf(func(wf *Workflow) {
    44  		wd, err := os.Getwd()
    45  		require.Nil(t, err, "Getwd failed")
    46  
    47  		p := findWorkflowRoot(wd)
    48  		assert.Equal(t, wd, p, "unexpected workflow directory")
    49  	})
    50  }
    51  
    52  func TestOpen(t *testing.T) {
    53  	helpURL := "https://github.com/ChicK00o/awgo"
    54  
    55  	withTestWf(func(wf *Workflow) {
    56  		wf.Configure(HelpURL(helpURL))
    57  		tests := []struct {
    58  			fn   func() error
    59  			name string
    60  			args []string
    61  		}{
    62  			{wf.OpenLog, "open",
    63  				[]string{"open", wf.LogFile()},
    64  			},
    65  			{wf.OpenHelp, "open",
    66  				[]string{"open", helpURL},
    67  			},
    68  			{wf.OpenCache, "open",
    69  				[]string{"open", wf.CacheDir()},
    70  			},
    71  			{wf.OpenData, "open",
    72  				[]string{"open", wf.DataDir()},
    73  			},
    74  		}
    75  
    76  		for _, td := range tests {
    77  			me := &mockExec{}
    78  			wf.execFunc = me.Run
    79  			assert.Nil(t, td.fn(), "test command failed")
    80  			assert.Equal(t, td.name, me.name, "Wrong command name")
    81  			assert.Equal(t, td.args, me.args, "Wrong command args")
    82  		}
    83  	})
    84  }