From 54bc4a7e6845b52281be7db59fa092138f0f750b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Gim=C3=A9nez?= Date: Sun, 5 May 2024 14:06:14 +0900 Subject: [PATCH] added extra test case and revert multiple dummy items --- pkg/nip/file_reader.go | 24 +++++++----------------- pkg/nip/rule_test.go | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/pkg/nip/file_reader.go b/pkg/nip/file_reader.go index b38efb5..22c0556 100644 --- a/pkg/nip/file_reader.go +++ b/pkg/nip/file_reader.go @@ -47,17 +47,10 @@ func ParseNIPFile(filePath string) (Rules, error) { rules := make([]Rule, 0) lineNumber := 0 - dummyItems := []data.Item{ - { - ID: 373, - Name: "mageplate", - Quality: item.QualityUnique, - }, - { - ID: 0, - Name: "handaxe", - Quality: item.QualityUnique, - }, + dummyItem := data.Item{ + ID: 516, + Name: "healingpotion", + Quality: item.QualityNormal, } for fileScanner.Scan() { @@ -71,13 +64,10 @@ func ParseNIPFile(filePath string) (Rules, error) { } // We evaluate all the rules at startup to ensure no format errors, if there is a format error we will throw it now instead of during runtime - for _, it := range dummyItems { - _, err = rule.Evaluate(it) - if err != nil { - return nil, fmt.Errorf("error testing rule on [%s:%d]: %w", filePath, lineNumber, err) - } + _, err = rule.Evaluate(dummyItem) + if err != nil { + return nil, fmt.Errorf("error testing rule on [%s:%d]: %w", filePath, lineNumber, err) } - rules = append(rules, rule) } diff --git a/pkg/nip/rule_test.go b/pkg/nip/rule_test.go index a986557..175b133 100644 --- a/pkg/nip/rule_test.go +++ b/pkg/nip/rule_test.go @@ -180,6 +180,25 @@ func TestRule_Evaluate(t *testing.T) { }, wantErr: true, }, + { + name: "enhanceddamage should work for charms and not damage items", + fields: fields{ + RawLine: "[name] == grandcharm && [quality] == magic # [enhanceddamage] >= 15 #", + Enabled: true, + }, + args: args{ + item: data.Item{ + Identified: true, + ID: 605, + Name: "grandcharm", + Quality: item.QualityMagic, + Stats: []stat.Data{ + {ID: stat.EnhancedDamage, Value: 15}, + }, + }, + }, + want: RuleResultFullMatch, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {