mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-26 01:33:22 +00:00
Create deterministic test data for stable API docs
Otherwise the auto-generated Swagger file changes all the time without code changes.
This commit is contained in:
@@ -5,8 +5,15 @@ require DfcProvider::Engine.root.join("spec/spec_helper")
|
||||
|
||||
describe "Enterprises", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml", rswag_autodoc: true do
|
||||
let!(:user) { create(:oidc_user) }
|
||||
let!(:enterprise) { create(:distributor_enterprise, owner: user) }
|
||||
let!(:product) { create(:simple_product, supplier: enterprise ) }
|
||||
let!(:enterprise) { create(:distributor_enterprise, id: 10_000, owner: user) }
|
||||
let!(:product) {
|
||||
create(
|
||||
:base_product,
|
||||
supplier: enterprise, name: "Apple", description: "Round",
|
||||
variants: [variant],
|
||||
)
|
||||
}
|
||||
let(:variant) { build(:base_variant, id: 10_001, unit_value: 1, sku: "APP") }
|
||||
|
||||
before { login_as user }
|
||||
|
||||
@@ -20,9 +27,9 @@ describe "Enterprises", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml", rs
|
||||
let(:id) { "default" }
|
||||
|
||||
run_test! do
|
||||
expect(response.body).to include(product.name)
|
||||
expect(response.body).to include(product.variants.first.sku)
|
||||
expect(response.body).to include("offers/#{product.variants.first.id}")
|
||||
expect(response.body).to include("Apple")
|
||||
expect(response.body).to include("APP")
|
||||
expect(response.body).to include("offers/10001")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -30,7 +37,7 @@ describe "Enterprises", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml", rs
|
||||
let(:id) { enterprise.id }
|
||||
|
||||
run_test! do
|
||||
expect(response.body).to include(product.name)
|
||||
expect(response.body).to include "Apple"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -40,7 +47,7 @@ describe "Enterprises", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml", rs
|
||||
let(:other_enterprise) { create(:distributor_enterprise) }
|
||||
|
||||
run_test! do
|
||||
expect(response.body).to_not include(product.name)
|
||||
expect(response.body).to_not include "Apple"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ require "swagger_helper"
|
||||
require DfcProvider::Engine.root.join("spec/spec_helper")
|
||||
|
||||
describe "Persons", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml", rswag_autodoc: true do
|
||||
let(:user) { create(:oidc_user) }
|
||||
let(:user) { create(:oidc_user, id: 10_000) }
|
||||
let(:other_user) { create(:oidc_user) }
|
||||
|
||||
before { login_as user }
|
||||
@@ -19,7 +19,7 @@ describe "Persons", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml", rswag_
|
||||
|
||||
run_test! do
|
||||
expect(response.body).to include "dfc-b:Person"
|
||||
expect(response.body).to include "persons/#{user.id}"
|
||||
expect(response.body).to include "persons/10000"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -6,9 +6,15 @@ require DfcProvider::Engine.root.join("spec/spec_helper")
|
||||
describe "SuppliedProducts", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml",
|
||||
rswag_autodoc: true do
|
||||
let!(:user) { create(:oidc_user) }
|
||||
let!(:enterprise) { create(:distributor_enterprise, owner: user) }
|
||||
let!(:product) { create(:simple_product, supplier: enterprise ) }
|
||||
let!(:variant) { product.variants.first }
|
||||
let!(:enterprise) { create(:distributor_enterprise, id: 10_000, owner: user) }
|
||||
let!(:product) {
|
||||
create(
|
||||
:base_product,
|
||||
supplier: enterprise, name: "Pesto", description: "Basil Pesto",
|
||||
variants: [variant],
|
||||
)
|
||||
}
|
||||
let(:variant) { build(:base_variant, id: 10_001, unit_value: 1) }
|
||||
|
||||
before { login_as user }
|
||||
|
||||
@@ -53,10 +59,12 @@ describe "SuppliedProducts", type: :request, swagger_doc: "dfc-v1.7/swagger.yaml
|
||||
end
|
||||
|
||||
it "creates a variant" do |example|
|
||||
existing = Spree::Variant.pluck(:id)
|
||||
|
||||
expect { submit_request(example.metadata) }
|
||||
.to change { enterprise.supplied_products.count }.by(1)
|
||||
|
||||
variant = Spree::Variant.last
|
||||
variant = Spree::Variant.where.not(id: existing).first
|
||||
expect(variant.name).to eq "Apple"
|
||||
expect(variant.unit_value).to eq 3
|
||||
end
|
||||
|
||||
@@ -44,21 +44,17 @@ paths:
|
||||
value:
|
||||
"@context": http://static.datafoodconsortium.org/ontologies/context.json
|
||||
"@graph":
|
||||
- "@id": http://test.host/api/dfc-v1.7/enterprises/473
|
||||
- "@id": http://test.host/api/dfc-v1.7/enterprises/10000
|
||||
"@type": dfc-b:Enterprise
|
||||
dfc-b:hasName: ''
|
||||
dfc-b:hasDescription: ''
|
||||
dfc-b:VATnumber: ''
|
||||
dfc-b:supplies: http://test.host/api/dfc-v1.7/enterprises/473/supplied_products/298
|
||||
dfc-b:manages: http://test.host/api/dfc-v1.7/enterprises/473/catalog_items/298
|
||||
- "@id": http://test.host/api/dfc-v1.7/enterprises/473/supplied_products/298
|
||||
dfc-b:supplies: http://test.host/api/dfc-v1.7/enterprises/10000/supplied_products/10001
|
||||
dfc-b:manages: http://test.host/api/dfc-v1.7/enterprises/10000/catalog_items/10001
|
||||
- "@id": http://test.host/api/dfc-v1.7/enterprises/10000/supplied_products/10001
|
||||
"@type": dfc-b:SuppliedProduct
|
||||
dfc-b:name: 'Product #2 - 8569'
|
||||
dfc-b:description: |-
|
||||
Voluptatem sequi hic expedita reprehenderit ad veniam recusandae explicabo. Occaecati eum cumque exercitationem culpa dolor. Velit accusamus blanditiis quia laboriosam fuga corrupti maiores ut.
|
||||
Consectetur illo necessitatibus porro eveniet. Similique est error labore inventore exercitationem. Similique nulla iusto tenetur reiciendis.
|
||||
Quis laborum saepe illo magnam dolorem distinctio sed eligendi. Suscipit et iure vitae facilis nam quia placeat. Vero ea accusantium corrupti possimus error ad. Repellendus tenetur atque minima architecto. Optio cum magni quisquam aliquid rerum.
|
||||
Laborum quae tempora iure accusamus sed blanditiis enim. Debitis earum omnis voluptate accusantium deserunt nisi nemo ad. Ea nihil architecto eius odit illo aut. Totam corporis error illum voluptatem. Repellendus eius adipisci eaque amet porro occaecati.
|
||||
dfc-b:name: Apple
|
||||
dfc-b:description: Round
|
||||
dfc-b:hasType: dfc-pt:non-local-vegetable
|
||||
dfc-b:hasQuantity:
|
||||
"@type": dfc-b:QuantitativeValue
|
||||
@@ -68,12 +64,12 @@ paths:
|
||||
dfc-b:lifetime: ''
|
||||
dfc-b:usageOrStorageCondition: ''
|
||||
dfc-b:totalTheoreticalStock: 0.0
|
||||
- "@id": http://test.host/api/dfc-v1.7/enterprises/473/catalog_items/298
|
||||
- "@id": http://test.host/api/dfc-v1.7/enterprises/10000/catalog_items/10001
|
||||
"@type": dfc-b:CatalogItem
|
||||
dfc-b:references: http://test.host/api/dfc-v1.7/enterprises/473/supplied_products/298
|
||||
dfc-b:sku: ''
|
||||
dfc-b:stockLimitation: 5
|
||||
dfc-b:offeredThrough: http://test.host/api/dfc-v1.7/enterprises/473/offers/298
|
||||
dfc-b:references: http://test.host/api/dfc-v1.7/enterprises/10000/supplied_products/10001
|
||||
dfc-b:sku: APP
|
||||
dfc-b:stockLimitation: 0
|
||||
dfc-b:offeredThrough: http://test.host/api/dfc-v1.7/enterprises/10000/offers/10001
|
||||
'404':
|
||||
description: not found
|
||||
"/api/dfc-v1.7/persons/{id}":
|
||||
@@ -94,7 +90,7 @@ paths:
|
||||
test_example:
|
||||
value:
|
||||
"@context": http://static.datafoodconsortium.org/ontologies/context.json
|
||||
"@id": http://test.host/api/dfc-v1.7/persons/910
|
||||
"@id": http://test.host/api/dfc-v1.7/persons/10000
|
||||
"@type": dfc-b:Person
|
||||
'404':
|
||||
description: not found
|
||||
@@ -155,13 +151,10 @@ paths:
|
||||
test_example:
|
||||
value:
|
||||
"@context": http://static.datafoodconsortium.org/ontologies/context.json
|
||||
"@id": http://test.host/api/dfc-v1.7/enterprises/478/supplied_products/303
|
||||
"@id": http://test.host/api/dfc-v1.7/enterprises/10000/supplied_products/10001
|
||||
"@type": dfc-b:SuppliedProduct
|
||||
dfc-b:name: 'Product #6 - 8953'
|
||||
dfc-b:description: Magni nemo enim saepe harum corporis nobis
|
||||
facilis. Nostrum facilis molestiae at quaerat exercitationem
|
||||
itaque veritatis. Incidunt eaque asperiores assumenda eveniet
|
||||
doloribus qui voluptatibus quidem.
|
||||
dfc-b:name: Pesto
|
||||
dfc-b:description: Basil Pesto
|
||||
dfc-b:hasType: dfc-pt:non-local-vegetable
|
||||
dfc-b:hasQuantity:
|
||||
"@type": dfc-b:QuantitativeValue
|
||||
|
||||
Reference in New Issue
Block a user