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  }