73 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package commands
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"testing"
 | |
| 
 | |
| 	"gitlab.com/revalus/grm/config"
 | |
| )
 | |
| 
 | |
| func TestSyncInit(t *testing.T) {
 | |
| 	sync := NewSynchronizer("test")
 | |
| 	if sync.workspace != "test" {
 | |
| 		t.Errorf("Expected to get \"test\", instead of this got %v", sync.workspace)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestSyncCommand(t *testing.T) {
 | |
| 
 | |
| 	workdir := createTmpDir()
 | |
| 
 | |
| 	sync := Synchronizer{
 | |
| 		workspace: workdir,
 | |
| 	}
 | |
| 
 | |
| 	cfg := config.RepositoryConfig{
 | |
| 		Src:  "https://github.com/avelino/awesome-go",
 | |
| 		Dest: "awesome-go",
 | |
| 	}
 | |
| 
 | |
| 	ch := make(chan CommandStatus)
 | |
| 
 | |
| 	// Pull part
 | |
| 	go sync.Command(cfg, ch)
 | |
| 
 | |
| 	cloneStatus := <-ch
 | |
| 	if cloneStatus.Error {
 | |
| 		t.Errorf("Unexpected error: %v", cloneStatus.Message)
 | |
| 	}
 | |
| 
 | |
| 	info, err := os.Stat(fmt.Sprintf("%v/awesome-go/.git", workdir))
 | |
| 	if err != nil {
 | |
| 		t.Errorf("Unexpected error: %v", err.Error())
 | |
| 	}
 | |
| 	if !info.IsDir() {
 | |
| 		t.Errorf("Expected that the selected path is dir")
 | |
| 	}
 | |
| 
 | |
| 	if cloneStatus.Changed != true {
 | |
| 		t.Errorf("Expected that the status is changed")
 | |
| 	}
 | |
| 
 | |
| 	if cloneStatus.Message != syncCloned {
 | |
| 		t.Errorf("Expected to get %v, instead of this got %v", syncCloned, cloneStatus.Message)
 | |
| 	}
 | |
| 
 | |
| 	// Fetch part
 | |
| 	go sync.Command(cfg, ch)
 | |
| 
 | |
| 	fetchStatus := <-ch
 | |
| 
 | |
| 	if fetchStatus.Error {
 | |
| 		t.Errorf("Unexpected error: %v", err.Error())
 | |
| 	}
 | |
| 
 | |
| 	if fetchStatus.Changed != false {
 | |
| 		t.Errorf("Expected that the status is not changed")
 | |
| 	}
 | |
| 
 | |
| 	if fetchStatus.Message != syncUpToDate {
 | |
| 		t.Errorf("Expected to get %v, instead of this got %v", syncUpToDate, cloneStatus.Message)
 | |
| 	}
 | |
| }
 |