github.com/kcmerrill/alfred@v0.0.0-20180727171036-06445dcb5e3d/pkg/alfred/taskparser_test.go (about)

     1  package alfred
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestSimpleTaskParser(t *testing.T) {
     8  	file, task := TaskParser("simple.task", "alfred:list")
     9  	if file != "" {
    10  		t.Fatalf("A simple task has a local file")
    11  	}
    12  
    13  	if task != "simple.task" {
    14  		t.Fatalf("simple.task was passed in as a basic task")
    15  	}
    16  }
    17  func TestDefaultTaskParser(t *testing.T) {
    18  	file, task := TaskParser("", "alfred:list")
    19  	if file != "" {
    20  		t.Fatalf("No task(list) should be local")
    21  	}
    22  
    23  	if task != "alfred:list" {
    24  		t.Fatalf("No task was passed, in a default task should have been returned")
    25  	}
    26  }
    27  
    28  func TestRemoteTaskParser(t *testing.T) {
    29  	file, task := TaskParser("/remote:new.task", "alfred:list")
    30  	if file != "https://raw.githubusercontent.com/kcmerrill/alfred-tasks/master/remote.yml" {
    31  		t.Fatalf("A remote task should return the master alfred github repository: " + file)
    32  	}
    33  
    34  	if task != "new.task" {
    35  		t.Fatalf("The remote file and new.task should have been returned")
    36  	}
    37  
    38  	file, task = TaskParser("/remote", "alfred:list")
    39  	if file != "https://raw.githubusercontent.com/kcmerrill/alfred-tasks/master/remote.yml" {
    40  		t.Fatalf("A remote task should return the master alfred github repository: " + file)
    41  	}
    42  
    43  	if task != "alfred:list" {
    44  		t.Fatalf("The default should have been returned")
    45  	}
    46  }
    47  
    48  func TestHTTPTaskParser(t *testing.T) {
    49  	file, task := TaskParser("http://someplace.com/whatever.yml:some.task", "alfred:list")
    50  	if file != "http://someplace.com/whatever.yml" {
    51  		t.Fatalf("Expected someplace.com to be returned")
    52  	}
    53  
    54  	if task != "some.task" {
    55  		t.Fatalf("some.task should have been returned")
    56  	}
    57  
    58  	file, task = TaskParser("http://someplace.com/whatever.yml", "alfred:list")
    59  	if file != "http://someplace.com/whatever.yml" {
    60  		t.Fatalf("Expected someplace.com to be returned")
    61  	}
    62  
    63  	if task != "alfred:list" {
    64  		t.Fatalf("Expected alfred:list to be returned when a task is not defined")
    65  	}
    66  }
    67  
    68  func TestMagicTaskURL(t *testing.T) {
    69  	tm := map[string]string{
    70  		"/slack": "https://raw.githubusercontent.com/kcmerrill/alfred-tasks/master/slack.yml:",
    71  		"slack":  "",
    72  		"http://somesite.com/sometask.yml:sometask": "http://somesite.com/sometask.yml:",
    73  	}
    74  
    75  	for task, result := range tm {
    76  		url := MagicTaskURL(task)
    77  		if url != result {
    78  			t.Fatal("expected", result, "actual", url)
    79  		}
    80  	}
    81  }