github.com/stellar/stellar-etl@v1.0.1-0.20240312145900-4874b6bf2b89/cmd/get_ledger_range_from_times_test.go (about)

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  func TestConvertTimes(t *testing.T) {
     9  	tests := []cliTest{
    10  		{
    11  			name:    "wrong date format",
    12  			args:    []string{"get_ledger_range_from_times", "-s", "2016 01 01 4:33", "-e", "2020 03 04 12:32"},
    13  			golden:  "",
    14  			wantErr: fmt.Errorf("could not parse start time: parsing time \\"),
    15  		},
    16  		{
    17  			name:    "normal range",
    18  			args:    []string{"get_ledger_range_from_times", "-s", "2016-11-10T18:00:00-05:00", "-e", "2019-09-13T23:00:00+00:00", "-o", gotTestDir(t, "normal_range.txt")},
    19  			golden:  "normal_range.golden",
    20  			wantErr: nil,
    21  		},
    22  		{
    23  			name:    "start too early",
    24  			args:    []string{"get_ledger_range_from_times", "-s", "2006-11-10T18:00:00-05:00", "-e", "2019-09-13T23:00:00+00:00", "-o", gotTestDir(t, "early_start.txt")},
    25  			golden:  "early_start.golden",
    26  			wantErr: nil,
    27  		},
    28  		// {
    29  		// 	name: "start too late",
    30  		// 	// @TODO
    31  		// 	// assertion should actually be that the start and end times equal
    32  		// 	// since it always grabs the end ledger you cannot hardcode the expected result
    33  		// 	// maybe grab the latest ledger through code??
    34  		// 	args:    []string{"get_ledger_range_from_times", "-s", "2021-09-13T23:00:00+00:00", "-e", "2021-09-13T23:30:00+00:00"},
    35  		// 	golden:  "late_start.golden",
    36  		// 	wantErr: nil,
    37  		// },
    38  		// {
    39  		// 	name: "end too late",
    40  		// 	// @TODO
    41  		// 	// Change the expected output to the max ledger time
    42  		// 	// cannot be hardcoded in a golden ledger
    43  		// 	args:    []string{"get_ledger_range_from_times", "-s", "2017-11-10T12:14:32+04:00", "-e", "2021-09-13T23:00:00+00:00"},
    44  		// 	golden:  "late_end.golden",
    45  		// 	wantErr: nil,
    46  		// },
    47  		{
    48  			name:    "end too early",
    49  			args:    []string{"get_ledger_range_from_times", "-s", "2006-11-10T12:14:32+04:00", "-e", "2006-11-10T12:14:32+04:00", "-o", gotTestDir(t, "early_end.txt")},
    50  			golden:  "early_end.golden",
    51  			wantErr: nil,
    52  		},
    53  		{
    54  			name:    "same date",
    55  			args:    []string{"get_ledger_range_from_times", "-s", "2016-11-10T18:03:37-05:00", "-e", "2016-11-10T18:03:37-05:00", "-o", gotTestDir(t, "same_date.txt")},
    56  			golden:  "same_date.golden",
    57  			wantErr: nil,
    58  		},
    59  		{
    60  			name:    "checkpoint range (22343680-22343743)",
    61  			args:    []string{"get_ledger_range_from_times", "-s", "2019-02-06T09:14:43+00:00", "-e", "2019-02-06T09:20:23+00:00", "-o", gotTestDir(t, "checkpoint_range.txt")},
    62  			golden:  "checkpoint_range.golden",
    63  			wantErr: nil,
    64  		},
    65  		{
    66  			name:    "checkpoint range (9341-9401)",
    67  			args:    []string{"get_ledger_range_from_times", "-s", "2015-10-01T06:20:00+00:00", "-e", "2015-10-01T06:25:00+00:00", "-o", gotTestDir(t, "checkpoint_range2.txt")},
    68  			golden:  "checkpoint_range2.golden",
    69  			wantErr: nil,
    70  		},
    71  		{
    72  			name:    "infinite loop; checkpoint range (14558-14606)",
    73  			args:    []string{"get_ledger_range_from_times", "-s", "2015-10-01T13:35:00+00:00", "-e", "2015-10-01T13:40:00+00:00", "-o", gotTestDir(t, "checkpoint_range3.txt")},
    74  			golden:  "checkpoint_range3.golden",
    75  			wantErr: nil,
    76  		},
    77  		{
    78  			name:    "early checkpoint range (3-3)",
    79  			args:    []string{"get_ledger_range_from_times", "-s", "2015-09-30T16:50:00+00:00", "-e", "2015-09-30T16:55:00+00:00", "-o", gotTestDir(t, "early_checkpoint_range.txt")},
    80  			golden:  "early_checkpoint_range.golden",
    81  			wantErr: nil,
    82  		},
    83  	}
    84  
    85  	for _, test := range tests {
    86  		runCLITest(t, test, "testdata/ranges/")
    87  	}
    88  }