github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/test/rpc_test.go (about)

     1  //go:build integration
     2  // +build integration
     3  
     4  package test
     5  
     6  import (
     7  	"errors"
     8  	"fmt"
     9  	"strings"
    10  	"testing"
    11  	"time"
    12  )
    13  
    14  func Testroutes(t *testing.T) {
    15  	TrySuite(t, testroutes, retryCount)
    16  }
    17  
    18  func testroutes(t *T) {
    19  	t.Parallel()
    20  	serv := NewServer(t, WithLogin())
    21  	defer serv.Close()
    22  	if err := serv.Run(); err != nil {
    23  		return
    24  	}
    25  
    26  	cmd := serv.Command()
    27  	outp, err := cmd.Exec("run", "--image", "localhost:5000/cells:v3", "./services/test/routes/routes-server")
    28  	if err != nil {
    29  		t.Fatalf("micro run failure, output: %v", string(outp))
    30  		return
    31  	}
    32  
    33  	if err := Try("Find routes-server in runtime", t, func() ([]byte, error) {
    34  		outp, err := cmd.Exec("status")
    35  		if err != nil {
    36  			return outp, err
    37  		}
    38  		if !statusRunning("routes-server", "latest", outp) {
    39  			return outp, errors.New("Can't find routes-server in runtime")
    40  		}
    41  		return nil, nil
    42  	}, 120*time.Second); err != nil {
    43  		return
    44  	}
    45  
    46  	if err := Try("Find routes service in registry", t, func() ([]byte, error) {
    47  		outp, err := cmd.Exec("services")
    48  		if err != nil {
    49  			return outp, err
    50  		}
    51  		if !strings.Contains(string(outp), "routes") {
    52  			return outp, errors.New("Can't find routes service in registry")
    53  		}
    54  		return nil, nil
    55  	}, 120*time.Second); err != nil {
    56  		return
    57  	}
    58  
    59  	outp, err = cmd.Exec("run", "--image", "localhost:5000/cells:v3", "./services/test/routes/routes-client")
    60  	if err != nil {
    61  		t.Fatalf("micro run failure, output: %v", string(outp))
    62  		return
    63  	}
    64  
    65  	if err := Try("Find routes-client in runtime", t, func() ([]byte, error) {
    66  		outp, err := cmd.Exec("status")
    67  		if err != nil {
    68  			return outp, err
    69  		}
    70  		if !statusRunning("routes-client", "latest", outp) {
    71  			return outp, errors.New("Can't find routes-client in runtime")
    72  		}
    73  		return nil, nil
    74  	}, 60*time.Second); err != nil {
    75  		return
    76  	}
    77  
    78  	if err := Try("Check logs", t, func() ([]byte, error) {
    79  		outp, err := cmd.Exec("logs", "routes-client")
    80  		if err != nil {
    81  			return nil, err
    82  		}
    83  		if !strings.Contains(string(outp), "Client completed ok") {
    84  			return outp, fmt.Errorf("Client did not complete ok")
    85  		}
    86  		return nil, nil
    87  	}, 120*time.Second); err != nil {
    88  		return
    89  	}
    90  }