From fd740bc499ebc6d3a381479316f74cdc736d02de Mon Sep 17 00:00:00 2001 From: Jeff Halter <868228+jhalter@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:41:20 -0700 Subject: Extensive refactor, quality of life enhancements * Added ability to reload config, agreement, news, and user accounts without restarting the server by sending SIGHUP to the running process * Added ability to use modern unix or windows line breaks in Agreement.txt and MessageBoard.txt instead of classic MacOS `\r` breaks. * Extensive refactor towards swappable backends for the active server state * Extensive refactored towards making the hotline package generic and re-usable for alternate server implemenations * Fix bug where users whose accounts have been deleted would not be disconnected --- hotline/file_header_test.go | 94 --------------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 hotline/file_header_test.go (limited to 'hotline/file_header_test.go') diff --git a/hotline/file_header_test.go b/hotline/file_header_test.go deleted file mode 100644 index 308d6b9..0000000 --- a/hotline/file_header_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package hotline - -import ( - "io" - "reflect" - "testing" -) - -func TestNewFileHeader(t *testing.T) { - type args struct { - fileName string - isDir bool - } - tests := []struct { - name string - args args - want FileHeader - }{ - { - name: "when path is file", - args: args{ - fileName: "foo", - isDir: false, - }, - want: FileHeader{ - Size: [2]byte{0x00, 0x0a}, - Type: [2]byte{0x00, 0x00}, - FilePath: EncodeFilePath("foo"), - }, - }, - { - name: "when path is dir", - args: args{ - fileName: "foo", - isDir: true, - }, - want: FileHeader{ - Size: [2]byte{0x00, 0x0a}, - Type: [2]byte{0x00, 0x01}, - FilePath: EncodeFilePath("foo"), - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := NewFileHeader(tt.args.fileName, tt.args.isDir); !reflect.DeepEqual(got, tt.want) { - t.Errorf("NewFileHeader() = %v, want %v", got, tt.want) - } - }) - } -} - -func TestFileHeader_Payload(t *testing.T) { - type fields struct { - Size [2]byte - Type [2]byte - FilePath []byte - } - tests := []struct { - name string - fields fields - want []byte - }{ - { - name: "has expected payload bytes", - fields: fields{ - Size: [2]byte{0x00, 0x0a}, - Type: [2]byte{0x00, 0x00}, - FilePath: EncodeFilePath("foo"), - }, - want: []byte{ - 0x00, 0x0a, // total size - 0x00, 0x00, // type - 0x00, 0x01, // path item count - 0x00, 0x00, // path separator - 0x03, // pathName len - 0x66, 0x6f, 0x6f, // "foo" - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - fh := &FileHeader{ - Size: tt.fields.Size, - Type: tt.fields.Type, - FilePath: tt.fields.FilePath, - } - got, _ := io.ReadAll(fh) - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("Read() = %v, want %v", got, tt.want) - } - }) - } -} -- cgit