mirror of
				https://github.com/1Password/onepassword-operator.git
				synced 2025-10-31 11:49:40 +00:00 
			
		
		
		
	 dcb5d5675a
			
		
	
	dcb5d5675a
	
	
	
		
			
			These internal models are introduced to reduce decoupling. The idea is to operate internal model within the project boundaries and convert to appropriate Connect or SDK models in the places where it's necessary.
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package model
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/stretchr/testify/require"
 | |
| 
 | |
| 	connect "github.com/1Password/connect-sdk-go/onepassword"
 | |
| 	sdk "github.com/1password/onepassword-sdk-go"
 | |
| )
 | |
| 
 | |
| func TestItem_FromConnectItem(t *testing.T) {
 | |
| 	connectItem := &connect.Item{
 | |
| 		ID: "test-item-id",
 | |
| 		Vault: connect.ItemVault{
 | |
| 			ID: "test-vault-id",
 | |
| 		},
 | |
| 		Version: 1,
 | |
| 		Tags:    []string{"tag1", "tag2"},
 | |
| 		Fields: []*connect.ItemField{
 | |
| 			{Label: "field1", Value: "value1"},
 | |
| 			{Label: "field2", Value: "value2"},
 | |
| 		},
 | |
| 		Files: []*connect.File{
 | |
| 			{ID: "file1", Name: "file1.txt", Size: 1234},
 | |
| 			{ID: "file2", Name: "file2.txt", Size: 1234},
 | |
| 		},
 | |
| 		CreatedAt: time.Now(),
 | |
| 	}
 | |
| 
 | |
| 	item := &Item{}
 | |
| 	item.FromConnectItem(connectItem)
 | |
| 
 | |
| 	require.Equal(t, connectItem.ID, item.ID)
 | |
| 	require.Equal(t, connectItem.Vault.ID, item.VaultID)
 | |
| 	require.Equal(t, connectItem.Version, item.Version)
 | |
| 	require.ElementsMatch(t, connectItem.Tags, item.Tags)
 | |
| 
 | |
| 	for i, field := range connectItem.Fields {
 | |
| 		require.Equal(t, field.Label, item.Fields[i].Label)
 | |
| 		require.Equal(t, field.Value, item.Fields[i].Value)
 | |
| 	}
 | |
| 
 | |
| 	for i, file := range connectItem.Files {
 | |
| 		require.Equal(t, file.ID, item.Files[i].ID)
 | |
| 		require.Equal(t, file.Name, item.Files[i].Name)
 | |
| 		require.Equal(t, file.Size, item.Files[i].Size)
 | |
| 	}
 | |
| 
 | |
| 	require.Equal(t, connectItem.CreatedAt, item.CreatedAt)
 | |
| }
 | |
| 
 | |
| func TestItem_FromSDKItem(t *testing.T) {
 | |
| 	sdkItem := &sdk.Item{
 | |
| 		ID:      "test-item-id",
 | |
| 		VaultID: "test-vault-id",
 | |
| 		Version: 1,
 | |
| 		Tags:    []string{"tag1", "tag2"},
 | |
| 		Fields: []sdk.ItemField{
 | |
| 			{ID: "1", Title: "field1", Value: "value1"},
 | |
| 			{ID: "2", Title: "field2", Value: "value2"},
 | |
| 		},
 | |
| 		Files: []sdk.ItemFile{
 | |
| 			{Attributes: sdk.FileAttributes{Name: "file1.txt", Size: 1234}, FieldID: "file1"},
 | |
| 			{Attributes: sdk.FileAttributes{Name: "file2.txt", Size: 1234}, FieldID: "file2"},
 | |
| 		},
 | |
| 		CreatedAt: time.Now(),
 | |
| 	}
 | |
| 
 | |
| 	item := &Item{}
 | |
| 	item.FromSDKItem(sdkItem)
 | |
| 
 | |
| 	require.Equal(t, sdkItem.ID, item.ID)
 | |
| 	require.Equal(t, sdkItem.VaultID, item.VaultID)
 | |
| 	require.Equal(t, int(sdkItem.Version), item.Version)
 | |
| 	require.ElementsMatch(t, sdkItem.Tags, item.Tags)
 | |
| 
 | |
| 	for i, field := range sdkItem.Fields {
 | |
| 		require.Equal(t, field.Title, item.Fields[i].Label)
 | |
| 		require.Equal(t, field.Value, item.Fields[i].Value)
 | |
| 	}
 | |
| 
 | |
| 	for i, file := range sdkItem.Files {
 | |
| 		require.Equal(t, file.Attributes.ID, item.Files[i].ID)
 | |
| 		require.Equal(t, file.Attributes.Name, item.Files[i].Name)
 | |
| 		require.Equal(t, int(file.Attributes.Size), item.Files[i].Size)
 | |
| 	}
 | |
| 
 | |
| 	require.Equal(t, sdkItem.CreatedAt, item.CreatedAt)
 | |
| }
 | |
| 
 | |
| func TestItem_FromSDKItemOverview(t *testing.T) {
 | |
| 	sdkItemOverview := &sdk.ItemOverview{
 | |
| 		ID:        "test-item-id",
 | |
| 		VaultID:   "test-vault-id",
 | |
| 		Tags:      []string{"tag1", "tag2"},
 | |
| 		CreatedAt: time.Now(),
 | |
| 	}
 | |
| 
 | |
| 	item := &Item{}
 | |
| 	item.FromSDKItemOverview(sdkItemOverview)
 | |
| 
 | |
| 	require.Equal(t, sdkItemOverview.ID, item.ID)
 | |
| 	require.Equal(t, sdkItemOverview.VaultID, item.VaultID)
 | |
| 	require.ElementsMatch(t, sdkItemOverview.Tags, item.Tags)
 | |
| 	require.Equal(t, sdkItemOverview.CreatedAt, item.CreatedAt)
 | |
| }
 |