github.com/seeker-insurance/kit@v0.0.13/calendar/calendar_test.go (about)

     1  package calendar
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestAddWorkHours(t *testing.T) {
    11  	c := SetupUSCalendar()
    12  
    13  	losAngeles, err := time.LoadLocation("America/Los_Angeles")
    14  	if err != nil {
    15  		t.Errorf("Error loading location: %s", err.Error())
    16  	}
    17  
    18  	tm, err := time.ParseInLocation(
    19  		"Jan 2, 2006 at 3:04pm (MST)",
    20  		"May 24, 2018 at 11:00am (PDT)", losAngeles)
    21  	if err != nil {
    22  		t.Errorf("Error parsing time: %s", err.Error())
    23  	}
    24  
    25  	// same day
    26  	tm2 := c.AddWorkHours(tm, 6)
    27  	assert.Equal(t, 24, tm2.Day())
    28  	assert.Equal(t, 17, tm2.Hour())
    29  
    30  	// next day
    31  	tm2 = c.AddWorkHours(tm, 10)
    32  	assert.Equal(t, 25, tm2.Day())
    33  	assert.Equal(t, 11, tm2.Hour())
    34  
    35  	// with weekend and labor day
    36  	tm2 = c.AddWorkHours(tm, 20)
    37  	assert.Equal(t, 29, tm2.Day())
    38  	assert.Equal(t, 11, tm2.Hour())
    39  }