Skip to content

Commit 53da54f

Browse files
committed
commit progress
1 parent addfedb commit 53da54f

File tree

2 files changed

+89
-16
lines changed

2 files changed

+89
-16
lines changed

source/export.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,7 @@ func (e *Export) AllMessages(ctx context.Context, channelID string) (iter.Seq2[s
140140
if err := e.buildThreadCache(ctx, name); err != nil {
141141
return nil, err
142142
}
143-
it, err := e.walkChannelMessages(ctx, name)
144-
if err != nil {
145-
return nil, err
146-
}
143+
it := e.walkChannelMessages(ctx, name)
147144
return func(yield func(slack.Message, error) bool) {
148145
for m, err := range it {
149146
if err != nil {
@@ -281,9 +278,8 @@ func (e *Export) nameByID(channelID string) (string, error) {
281278
return name, nil
282279
}
283280

284-
func (e *Export) walkChannelMessages(ctx context.Context, name string) (iter.Seq2[slack.Message, error], error) {
285-
fsi := newFullScanIter(ctx, e.fs, name)
286-
return fsi.Iter, nil
281+
func (e *Export) walkChannelMessages(ctx context.Context, name string) iter.Seq2[slack.Message, error] {
282+
return newFullScanIter(ctx, e.fs, name).Iter
287283
}
288284

289285
var errNotInCache = errors.New("channel not in cache")
@@ -319,10 +315,7 @@ func (e *Export) AllThreadMessages(ctx context.Context, channelID, threadID stri
319315
return nil, err
320316
}
321317
lg.WarnContext(ctx, "cache not available, initiating full scan", "err", err)
322-
it, err = e.walkChannelMessages(ctx, name)
323-
if err != nil {
324-
return nil, err
325-
}
318+
it = e.walkChannelMessages(ctx, name)
326319
}
327320
iterFn := func(yield func(slack.Message, error) bool) {
328321
for m, err := range it {

source/export_test.go

Lines changed: 85 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -387,11 +387,7 @@ func TestExport_walkChannelMessages(t *testing.T) {
387387
files: tt.fields.files,
388388
avatars: tt.fields.avatars,
389389
}
390-
it, err := e.walkChannelMessages(t.Context(), tt.args.name)
391-
if (err != nil) != tt.wantErr {
392-
t.Errorf("Export.walkChannelMessages() error = %v, wantErr %v", err, tt.wantErr)
393-
return
394-
}
390+
it := e.walkChannelMessages(t.Context(), tt.args.name)
395391
var got []slack.Message
396392
for m, err := range it {
397393
if (err != nil) != tt.wantErr {
@@ -406,3 +402,87 @@ func TestExport_walkChannelMessages(t *testing.T) {
406402
})
407403
}
408404
}
405+
406+
func TestExport_nameByID(t *testing.T) {
407+
type fields struct {
408+
fs fs.FS
409+
channels []slack.Channel
410+
chanNames map[string]string
411+
name string
412+
idx structures.ExportIndex
413+
files Storage
414+
avatars Storage
415+
cache *threadCache
416+
}
417+
type args struct {
418+
channelID string
419+
}
420+
tests := []struct {
421+
name string
422+
fields fields
423+
args args
424+
want string
425+
wantErr bool
426+
}{
427+
{
428+
name: "resolves existing channel",
429+
fields: fields{
430+
fs: fstest.MapFS{
431+
"slackdump/": &fstest.MapFile{Mode: 0755},
432+
},
433+
chanNames: map[string]string{
434+
"C12345": "slackdump",
435+
},
436+
},
437+
args: args{"C12345"},
438+
want: "slackdump",
439+
wantErr: false,
440+
},
441+
{
442+
name: "channel not in index",
443+
fields: fields{
444+
fs: fstest.MapFS{
445+
"slackdump/": &fstest.MapFile{Mode: 0755},
446+
},
447+
chanNames: map[string]string{},
448+
},
449+
args: args{"C12345"},
450+
want: "",
451+
wantErr: true,
452+
},
453+
{
454+
name: "channel not on the filesystem",
455+
fields: fields{
456+
fs: fstest.MapFS{},
457+
chanNames: map[string]string{
458+
"C12345": "slackdump",
459+
},
460+
},
461+
args: args{"C12345"},
462+
want: "",
463+
wantErr: true,
464+
},
465+
}
466+
for _, tt := range tests {
467+
t.Run(tt.name, func(t *testing.T) {
468+
e := &Export{
469+
fs: tt.fields.fs,
470+
channels: tt.fields.channels,
471+
chanNames: tt.fields.chanNames,
472+
name: tt.fields.name,
473+
idx: tt.fields.idx,
474+
files: tt.fields.files,
475+
avatars: tt.fields.avatars,
476+
cache: tt.fields.cache,
477+
}
478+
got, err := e.nameByID(tt.args.channelID)
479+
if (err != nil) != tt.wantErr {
480+
t.Errorf("Export.nameByID() error = %v, wantErr %v", err, tt.wantErr)
481+
return
482+
}
483+
if got != tt.want {
484+
t.Errorf("Export.nameByID() = %v, want %v", got, tt.want)
485+
}
486+
})
487+
}
488+
}

0 commit comments

Comments
 (0)