package metainfoFetcher

import (
	"testing"

	"github.com/NyaaPantsu/nyaa/model"
	"github.com/anacrolix/torrent"
)

func TestInvalidHash(t *testing.T) {
	client, err := torrent.NewClient(nil)
	if err != nil {
		t.Skipf("Failed to create client, with err %v. Skipping.", err)
	}

	fetcher := &MetainfoFetcher{
		timeout:       5,
		torrentClient: client,
		results:       make(chan Result, 1),
	}

	dbEntry := model.Torrent{
		Hash: "INVALID",
		Name: "Invalid",
	}

	op := NewFetchOperation(fetcher, dbEntry)
	fetcher.wg.Add(1)
	op.Start(fetcher.results)

	var res Result
	select {
	case res = <-fetcher.results:
		break
	default:
		t.Fatal("No result in channel, should have one")
	}

	if res.err == nil {
		t.Fatal("Got no error, should have got invalid magnet")
	}

	t.Logf("Got error %s, shouldn't be timeout", res.err)
}
