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 }