github.com/baptiste-b-pegasys/quorum/v22@v22.4.2/graphql/graphiql_test.go (about)

     1  package graphql
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/ethereum/go-ethereum/plugin/security"
     8  	"github.com/jpmorganchase/quorum-security-plugin-sdk-go/proto"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestAddQuorumHTML_whenTypical(t *testing.T) {
    13  	testObject := GraphiQL{
    14  		authManagerFunc: func() (security.AuthenticationManager, error) {
    15  			return security.NewDisabledAuthenticationManager(), nil
    16  		},
    17  		isMPS: false,
    18  	}
    19  	out, err := testObject.addQuorumHTML(graphiql)
    20  
    21  	assert.NoError(t, err)
    22  	assert.NotContains(t, string(out), "access-token")
    23  	assert.NotContains(t, string(out), "psi")
    24  }
    25  
    26  func TestAddQuorumHTML_whenMPS(t *testing.T) {
    27  	testObject := GraphiQL{
    28  		authManagerFunc: func() (security.AuthenticationManager, error) {
    29  			return security.NewDisabledAuthenticationManager(), nil
    30  		},
    31  		isMPS: true,
    32  	}
    33  	out, err := testObject.addQuorumHTML(graphiql)
    34  
    35  	assert.NoError(t, err)
    36  	html := string(out)
    37  	assert.NotContains(t, html, "access-token")
    38  	assert.Contains(t, html, "psi")
    39  }
    40  
    41  func TestAddQuorumHTML_whenRPCSecured(t *testing.T) {
    42  	testObject := GraphiQL{
    43  		authManagerFunc: func() (security.AuthenticationManager, error) {
    44  			return &StubAuthenticationManager{}, nil
    45  		},
    46  		isMPS: false,
    47  	}
    48  	out, err := testObject.addQuorumHTML(graphiql)
    49  
    50  	assert.NoError(t, err)
    51  	html := string(out)
    52  	assert.Contains(t, html, "access-token")
    53  	assert.NotContains(t, html, "psi")
    54  }
    55  
    56  func TestAddQuorumHTML_whenMPSAndRPCSecured(t *testing.T) {
    57  	testObject := GraphiQL{
    58  		authManagerFunc: func() (security.AuthenticationManager, error) {
    59  			return &StubAuthenticationManager{}, nil
    60  		},
    61  		isMPS: true,
    62  	}
    63  	out, err := testObject.addQuorumHTML(graphiql)
    64  
    65  	assert.NoError(t, err)
    66  	html := string(out)
    67  	assert.Contains(t, html, "access-token")
    68  	assert.Contains(t, html, "psi")
    69  }
    70  
    71  type StubAuthenticationManager struct {
    72  }
    73  
    74  func (s *StubAuthenticationManager) Authenticate(_ context.Context, _ string) (*proto.PreAuthenticatedAuthenticationToken, error) {
    75  	panic("implement me")
    76  }
    77  
    78  func (s *StubAuthenticationManager) IsEnabled(_ context.Context) (bool, error) {
    79  	return true, nil
    80  }