github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/table/function/query_test.go (about) 1 package functionTable_test 2 3 import ( 4 "time" 5 6 "github.com/alecthomas/units" 7 structureSpec "github.com/taubyte/go-specs/structure" 8 "github.com/taubyte/tau-cli/common" 9 functionTable "github.com/taubyte/tau-cli/table/function" 10 ) 11 12 func getDefaultFunction() *structureSpec.Function { 13 return &structureSpec.Function{ 14 Id: "QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH", 15 Name: "someProject", 16 Tags: []string{"function_tag_1", "function_tag_2"}, 17 Timeout: uint64(20 * time.Second), 18 Memory: uint64(32 * units.GB), 19 Call: "ping", 20 Source: ".", 21 } 22 } 23 24 func ExampleQuery_http() { 25 function := getDefaultFunction() 26 function.Description = "an http function for a simple ping" 27 function.Type = common.FunctionTypeHttp 28 function.Domains = []string{"test_domain1"} 29 function.Method = "get" 30 function.Paths = []string{"/ping"} 31 32 functionTable.Query(function) 33 34 // Output: 35 // ┌─────────────┬────────────────────────────────────────────────┐ 36 // │ ID │ QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH │ 37 // ├─────────────┼────────────────────────────────────────────────┤ 38 // │ Name │ someProject │ 39 // ├─────────────┼────────────────────────────────────────────────┤ 40 // │ Description │ an http function for a simple ping │ 41 // ├─────────────┼────────────────────────────────────────────────┤ 42 // │ Tags │ function_tag_1, function_tag_2 │ 43 // ├─────────────┼────────────────────────────────────────────────┤ 44 // │ Type │ http │ 45 // ├─────────────┼────────────────────────────────────────────────┤ 46 // │ Timeout │ 20s │ 47 // ├─────────────┼────────────────────────────────────────────────┤ 48 // │ Memory │ 32GB │ 49 // ├─────────────┼────────────────────────────────────────────────┤ 50 // │ Method │ get │ 51 // ├─────────────┼────────────────────────────────────────────────┤ 52 // │ Domains │ test_domain1 │ 53 // ├─────────────┼────────────────────────────────────────────────┤ 54 // │ Paths │ /ping │ 55 // ├─────────────┼────────────────────────────────────────────────┤ 56 // │ Source │ . │ 57 // ├─────────────┼────────────────────────────────────────────────┤ 58 // │ Call │ ping │ 59 // └─────────────┴────────────────────────────────────────────────┘ 60 } 61 62 func ExampleQuery_p2p() { 63 function := getDefaultFunction() 64 function.Description = "a p2p function for a simple ping" 65 function.Type = common.FunctionTypeP2P 66 function.Protocol = "/test/v1" 67 function.Command = "ping" 68 function.Local = true 69 70 functionTable.Query(function) 71 72 // Output: 73 // ┌─────────────┬────────────────────────────────────────────────┐ 74 // │ ID │ QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH │ 75 // ├─────────────┼────────────────────────────────────────────────┤ 76 // │ Name │ someProject │ 77 // ├─────────────┼────────────────────────────────────────────────┤ 78 // │ Description │ a p2p function for a simple ping │ 79 // ├─────────────┼────────────────────────────────────────────────┤ 80 // │ Tags │ function_tag_1, function_tag_2 │ 81 // ├─────────────┼────────────────────────────────────────────────┤ 82 // │ Type │ p2p │ 83 // ├─────────────┼────────────────────────────────────────────────┤ 84 // │ Timeout │ 20s │ 85 // ├─────────────┼────────────────────────────────────────────────┤ 86 // │ Memory │ 32GB │ 87 // ├─────────────┼────────────────────────────────────────────────┤ 88 // │ Protocol │ /test/v1 │ 89 // ├─────────────┼────────────────────────────────────────────────┤ 90 // │ Command │ ping │ 91 // ├─────────────┼────────────────────────────────────────────────┤ 92 // │ Local │ true │ 93 // ├─────────────┼────────────────────────────────────────────────┤ 94 // │ Source │ . │ 95 // ├─────────────┼────────────────────────────────────────────────┤ 96 // │ Call │ ping │ 97 // └─────────────┴────────────────────────────────────────────────┘ 98 } 99 100 func ExampleQuery_pubsub() { 101 function := getDefaultFunction() 102 function.Description = "a pubsub function for a simple ping" 103 function.Type = common.FunctionTypePubSub 104 function.Channel = "test_channel" 105 106 functionTable.Query(function) 107 108 // Output: 109 // ┌─────────────┬────────────────────────────────────────────────┐ 110 // │ ID │ QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH │ 111 // ├─────────────┼────────────────────────────────────────────────┤ 112 // │ Name │ someProject │ 113 // ├─────────────┼────────────────────────────────────────────────┤ 114 // │ Description │ a pubsub function for a simple ping │ 115 // ├─────────────┼────────────────────────────────────────────────┤ 116 // │ Tags │ function_tag_1, function_tag_2 │ 117 // ├─────────────┼────────────────────────────────────────────────┤ 118 // │ Type │ pubsub │ 119 // ├─────────────┼────────────────────────────────────────────────┤ 120 // │ Timeout │ 20s │ 121 // ├─────────────┼────────────────────────────────────────────────┤ 122 // │ Memory │ 32GB │ 123 // ├─────────────┼────────────────────────────────────────────────┤ 124 // │ Channel │ test_channel │ 125 // ├─────────────┼────────────────────────────────────────────────┤ 126 // │ Local │ false │ 127 // ├─────────────┼────────────────────────────────────────────────┤ 128 // │ Source │ . │ 129 // ├─────────────┼────────────────────────────────────────────────┤ 130 // │ Call │ ping │ 131 // └─────────────┴────────────────────────────────────────────────┘ 132 }