zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

commit 1be80f0f846620a4a408790712ab66cd5b5e6878
parent 7cda0ab55f0e4ca55b61a32f8702e9face84a102
Author: srfsh <dev@srf.sh>
Date:   Tue, 15 Nov 2022 00:55:34 +0300

ZenflowsTest.Help.Factory: introducte a small hack to deal with EconomicResources' previous_event_id being non-null

Diffstat:
Mtest/help/factory.ex | 73+++++++++++++++++++++++++++++++------------------------------------------
1 file changed, 31 insertions(+), 42 deletions(-)

diff --git a/test/help/factory.ex b/test/help/factory.ex @@ -107,14 +107,17 @@ end @doc "Inserts a schema into the database with field overrides." @spec insert!(atom(), %{required(atom()) => term()}) :: struct() -def insert!(name, attrs \\ %{}) do - name |> build!(attrs) |> Repo.insert!() +def insert!(_, _ \\ %{}) +def insert!(:economic_event, _), do: insert_economic_event!() +def insert!(:economic_resource, _), do: insert_economic_resource!() +def insert!(name, params) do + name |> build!(params) |> Repo.insert!() end @doc "Builds a schema with field overrides." @spec build!(atom(), %{required(atom()) => term()}) :: struct() -def build!(name, attrs \\ %{}) do - name |> build() |> struct!(attrs) +def build!(name, params \\ %{}) do + name |> build() |> struct!(params) end @doc """ @@ -359,42 +362,6 @@ def build(:product_batch) do } end -def build(:economic_resource) do - recurse? = bool() - qty = build(:imeasure) - - %VF.EconomicResource{ - name: str("some name"), - note: str("some note"), - images: file_list(), - tracking_identifier: str("some tracking identifier"), - classified_as: str_list("some uri"), - conforms_to: build(:resource_specification), - accounting_quantity_has_unit: qty.has_unit, - accounting_quantity_has_numerical_value: qty.has_numerical_value, - onhand_quantity_has_unit: qty.has_unit, - onhand_quantity_has_numerical_value: qty.has_numerical_value, - primary_accountable: build(:agent), - custodian: build(:agent), - stage: build(:process_specification), - state_id: build(:action_id), - current_location: build(:spatial_thing), - lot: build(:product_batch), - contained_in: if(recurse?, do: build(:economic_resource)), - unit_of_effort: build(:unit), - okhv: str("okhv"), - repo: uri(), - version: str("version"), - licensor: str("licensor"), - license: str("license"), - metadata: %{str("key") => str("val")}, - } -end - -def build(:economic_event) do - %{} -end - def build(:appreciation) do %VF.Appreciation{ appreciation_of: build(:economic_event), @@ -418,7 +385,7 @@ def build(:intent) do output_of: build(:process), resource_classified_as: str_list("some uri"), resource_conforms_to: build(:resource_specification), - resource_inventoried_as: build(:economic_resource), + resource_inventoried_as_id: insert_economic_resource!().id, resource_quantity_has_unit: resqty.has_unit, resource_quantity_has_numerical_value: resqty.has_numerical_value, effort_quantity_has_unit: effqty.has_unit, @@ -452,7 +419,7 @@ def build(:commitment) do output_of: build(:process), resource_classified_as: str_list("some uri"), resource_conforms_to: if(resource_mutex?, do: build(:resource_specification)), - resource_inventoried_as: unless(resource_mutex?, do: build(:economic_resource)), + resource_inventoried_as_id: unless(resource_mutex?, do: insert_economic_resource!().id), resource_quantity_has_unit: resqty.has_unit, resource_quantity_has_numerical_value: resqty.has_numerical_value, effort_quantity_has_unit: effqty.has_unit, @@ -573,4 +540,26 @@ def build(:proposed_to) do proposed: build(:proposal), } end + +def insert_economic_event!() do + agent = insert!(:agent) + Zenflows.VF.EconomicEvent.Domain.create!(%{ + action_id: "raise", + provider_id: agent.id, + receiver_id: agent.id, + resource_classified_as: str_list("some uri"), + resource_conforms_to_id: insert!(:resource_specification).id, + resource_quantity: %{ + has_numerical_value: float(), + has_unit_id: insert!(:unit).id, + }, + has_point_in_time: now(), + }, %{name: str("some name")}) end + +def insert_economic_resource!() do + %{resource_inventoried_as_id: id} = insert_economic_event!() + Zenflows.VF.EconomicResource.Domain.one!(id) +end +end +