Better handle modeling predictions for items with *no* data
This doesn't generally happen, but did the other day when I rolled back some of the database's SWF asset records but kept the items—and it was a bit confusing that the homepage marked them as fully modeled!
This commit is contained in:
parent
f90380c4e6
commit
f7109e398a
2 changed files with 6 additions and 2 deletions
|
@ -291,6 +291,10 @@ class Item < ApplicationRecord
|
||||||
# This might just be a species-specific item. Let's be conservative in
|
# This might just be a species-specific item. Let's be conservative in
|
||||||
# our prediction, though we'll revise it if we see another body ID.
|
# our prediction, though we'll revise it if we see another body ID.
|
||||||
compatible_body_ids
|
compatible_body_ids
|
||||||
|
elsif compatible_body_ids.size == 0
|
||||||
|
# If somehow we have this item, but not any modeling data for it (weird!),
|
||||||
|
# consider it to fit all standard pet types until shown otherwise.
|
||||||
|
PetType.basic.distinct.pluck(:body_id).sort
|
||||||
else
|
else
|
||||||
# First, find our compatible pet types, then pair each body ID with its
|
# First, find our compatible pet types, then pair each body ID with its
|
||||||
# color. (As an optimization, we omit standard colors, other than the
|
# color. (As an optimization, we omit standard colors, other than the
|
||||||
|
|
|
@ -29,11 +29,11 @@ RSpec.describe Item do
|
||||||
describe "an item without any modeling data" do
|
describe "an item without any modeling data" do
|
||||||
subject(:item) { items(:straw_hat) }
|
subject(:item) { items(:straw_hat) }
|
||||||
|
|
||||||
pending("is not fully modeled") { should_not be_predicted_fully_modeled }
|
it("is not fully modeled") { should_not be_predicted_fully_modeled }
|
||||||
it("has no compatible body IDs") do
|
it("has no compatible body IDs") do
|
||||||
expect(item.compatible_body_ids).to be_empty
|
expect(item.compatible_body_ids).to be_empty
|
||||||
end
|
end
|
||||||
pending("predicts all standard bodies are compatible") do
|
it("predicts all standard bodies are compatible") do
|
||||||
expect(item.predicted_missing_body_ids).to contain_exactly(1, 2, 3)
|
expect(item.predicted_missing_body_ids).to contain_exactly(1, 2, 3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue