Skip to content
Snippets Groups Projects
Select Git revision
  • 0b15ec751fbd152b7da51fbcb4999a528ad5167f
  • master default protected
  • bugfix/fix-return-var-in-find
  • feature/upgrade2
  • v1.10.0
  • v1.8.2
  • v1.8.1
  • v1.8.0
  • 1.7.3
  • v1.7.1
  • v1.6.1
  • v1.6.0
  • v1.5.0
  • v1.4.1
  • v1.3.0
  • v1.2.2
  • v1.2.1
  • v1.2.0
  • v1.0.1
  • v1.0.0
  • v0.0.23
  • v0.0.17
  • v0.0.10
  • v0.0.9
24 results

__init__.py

Blame
  • reference_test.go 1.65 KiB
    package references
    
    import (
    	"context"
    	"fmt"
    	"testing"
    
    	"git.perx.ru/perxis/perxis-go/pkg/expr"
    	"github.com/mitchellh/mapstructure"
    	"github.com/stretchr/testify/require"
    )
    
    func TestReference_InExpr(t *testing.T) {
    	ctx := context.Background()
    
    	tests := []struct {
    		exp        string
    		env        map[string]interface{}
    		wantResult interface{}
    		wantErr    bool
    	}{
    		{"r.id", map[string]interface{}{"r": &Reference{ID: "some_id"}}, "some_id", false},
    		{"r.collection_id", map[string]interface{}{"r": &Reference{CollectionID: "some_coll_id"}}, "some_coll_id", false},
    		{"r.disabled", map[string]interface{}{"r": &Reference{Disabled: true}}, true, false},
    		{"r.String()", map[string]interface{}{"r": &Reference{ID: "id", CollectionID: "collID"}}, "collID.id", false},
    		{"r1.Equal(r2)", map[string]interface{}{"r1": &Reference{"id", "collID", false}, "r2": &Reference{"id", "collID", false}}, true, false},
    		{"r.IsValid()", map[string]interface{}{"r": &Reference{}}, false, false},
    		{"r.not_exists", map[string]interface{}{"r": &Reference{}}, false, true},
    	}
    
    	for _, tt := range tests {
    		t.Run(tt.exp, func(t *testing.T) {
    			result, err := expr.Eval(ctx, tt.exp, tt.env)
    			if tt.wantErr {
    				require.Error(t, err)
    				return
    			}
    
    			require.NoError(t, err)
    			require.Equal(t, tt.wantResult, result)
    		})
    	}
    }
    
    func TestReference_encode(t *testing.T) {
    	var result map[string]any
    	dec, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{TagName: "json", Result: &result})
    	require.NoError(t, err)
    
    	err = dec.Decode(&Reference{
    		ID:           "ref_id",
    		CollectionID: "coll_id",
    		Disabled:     false,
    	})
    	require.NoError(t, err)
    
    	fmt.Println(result)
    }