mirror of https://github.com/ollama/ollama.git
				
				
				
			
		
			
	
	
		
			51 lines
		
	
	
		
			945 B
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			945 B
		
	
	
	
		
			Go
		
	
	
	
|  | package api | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"encoding/json" | ||
|  | 	"math" | ||
|  | 	"testing" | ||
|  | 	"time" | ||
|  | 
 | ||
|  | 	"github.com/stretchr/testify/assert" | ||
|  | 	"github.com/stretchr/testify/require" | ||
|  | ) | ||
|  | 
 | ||
|  | func TestKeepAliveParsingFromJSON(t *testing.T) { | ||
|  | 	tests := []struct { | ||
|  | 		name string | ||
|  | 		req  string | ||
|  | 		exp  *Duration | ||
|  | 	}{ | ||
|  | 		{ | ||
|  | 			name: "Positive Integer", | ||
|  | 			req:  `{ "keep_alive": 42 }`, | ||
|  | 			exp:  &Duration{42 * time.Second}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "Positive Integer String", | ||
|  | 			req:  `{ "keep_alive": "42m" }`, | ||
|  | 			exp:  &Duration{42 * time.Minute}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "Negative Integer", | ||
|  | 			req:  `{ "keep_alive": -1 }`, | ||
|  | 			exp:  &Duration{math.MaxInt64}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			name: "Negative Integer String", | ||
|  | 			req:  `{ "keep_alive": "-1m" }`, | ||
|  | 			exp:  &Duration{math.MaxInt64}, | ||
|  | 		}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for _, test := range tests { | ||
|  | 		t.Run(test.name, func(t *testing.T) { | ||
|  | 			var dec ChatRequest | ||
|  | 			err := json.Unmarshal([]byte(test.req), &dec) | ||
|  | 			require.NoError(t, err) | ||
|  | 
 | ||
|  | 			assert.Equal(t, test.exp, dec.KeepAlive) | ||
|  | 		}) | ||
|  | 	} | ||
|  | } |