github.com/argoproj/argo-cd/v3@v3.2.1/util/buffered_context/buffered_context_test.go (about)

     1  package buffered_context_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"github.com/argoproj/argo-cd/v3/util/buffered_context"
    11  )
    12  
    13  func TestWithEarlierDeadline_NoDeadline(t *testing.T) {
    14  	ctx := t.Context()
    15  
    16  	bufferedCtx, cancel := buffered_context.WithEarlierDeadline(ctx, 100*time.Millisecond)
    17  	defer cancel()
    18  
    19  	assert.Equal(t, ctx, bufferedCtx)
    20  
    21  	_, hasDeadline := bufferedCtx.Deadline()
    22  	assert.False(t, hasDeadline)
    23  }
    24  
    25  func TestWithEarlierDeadline_WithDeadline(t *testing.T) {
    26  	ctx, cancel := context.WithDeadline(t.Context(), time.Now())
    27  	defer cancel()
    28  
    29  	buffer := 100 * time.Millisecond
    30  	bufferedCtx, cancel := buffered_context.WithEarlierDeadline(ctx, buffer)
    31  	defer cancel()
    32  
    33  	assert.NotEqual(t, ctx, bufferedCtx)
    34  	originalDeadline, _ := ctx.Deadline()
    35  	newDeadline, _ := bufferedCtx.Deadline()
    36  	assert.Equal(t, originalDeadline.Add(-1*buffer), newDeadline)
    37  }