autobrr/internal/indexer/definition_test.go
Frederick Robinson fef0da5711
feat(definitions): add expectations for test lines (#1257)
* factor out test helpers

* refactor, add tests for animebytes

* revert test refactor

* better name

* change format, migrate some examples

* migrated remaining test cases

* add comment about `Test` vs `Tests`

* refactor

* reorder expectations to match vars

* generate

* turn on strict unmarshalling, remove old `Test` from schema

* start modifying actual definitions

* done with the As

* Bs

* C, D

* E, F

* G, H, I, ... L

* M, N

* O, P

* R

* bonus error. without this, pattern/vars disagreement can panic.

* S

* T, U

* X.. Now we know our ABCs next time won't you sing with meeeee

* fix another test

* another driveby change

* be less strict parsing custom definitions

* fix(definitions): load custom definitions

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-11-18 15:41:39 +01:00

35 lines
768 B
Go

package indexer
import (
"testing"
"github.com/autobrr/autobrr/internal/domain"
"github.com/stretchr/testify/assert"
)
func TestYamlExpectations(t *testing.T) {
s := &service{definitions: map[string]domain.IndexerDefinition{}}
err := s.LoadIndexerDefinitions()
assert.Nil(t, err)
for _, d := range s.definitions {
if d.IRC == nil {
continue
}
if d.IRC.Parse == nil {
continue
}
if d.IRC.Parse.Lines == nil {
continue
}
for _, parseLine := range d.IRC.Parse.Lines {
for i, test := range parseLine.Tests {
parseOutput := map[string]string{}
ParseLine(nil, parseLine.Pattern, parseLine.Vars, parseOutput, test.Line, parseLine.Ignore)
assert.Equal(t, test.Expect, parseOutput, "error in expectation %d", i)
}
}
}
}