casa icon indicating copy to clipboard operation
casa copied to clipboard

Seeder api

Open FireLemons opened this issue 9 months ago • 3 comments

What changed, and why?

API to more easily control test data

How is this tested? (please write rspec and jest tests!) 💖💪

One time testing log here. Not many people need this feature and the seeder is part of CI already.

FireLemons avatar Apr 02 '25 00:04 FireLemons

Test for seed_additional_expense

casa(dev)> seed_additional_expense(case_contact_id: '1')
  TRANSACTION (0.2ms)  BEGIN
  CaseContact Load (26.0ms)  SELECT "case_contacts".* FROM "case_contacts" WHERE "case_contacts"."deleted_at" IS NULL AND "case_contacts"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
  AdditionalExpense Create (47.8ms)  INSERT INTO "additional_expenses" ("case_contact_id", "other_expense_amount", "other_expenses_describe", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["case_contact_id", 1], ["other_expense_amount", "8.22"], ["other_expenses_describe", "Rustic Steel Knife"], ["created_at", "2025-04-09 00:24:43.229255"], ["updated_at", "2025-04-09 00:24:43.229255"]]
  TRANSACTION (20.7ms)  COMMIT
=> 
#<AdditionalExpense:0x000076309f8c0898
 id: 6,
 case_contact_id: 1,
 other_expense_amount: 0.822e1,
 other_expenses_describe: "Rustic Steel Knife",
 created_at: "2025-04-09 00:24:43.229255000 +0000",
 updated_at: "2025-04-09 00:24:43.229255000 +0000">

casa(dev)> seed_additional_expense(case_contact: CaseContact.first)
  CaseContact Load (0.6ms)  SELECT "case_contacts".* FROM "case_contacts" WHERE "case_contacts"."deleted_at" IS NULL ORDER BY "case_contacts"."id" ASC LIMIT $1  [["LIMIT", 1]]
  TRANSACTION (0.3ms)  BEGIN
  AdditionalExpense Create (1.5ms)  INSERT INTO "additional_expenses" ("case_contact_id", "other_expense_amount", "other_expenses_describe", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["case_contact_id", 1], ["other_expense_amount", "40.82"], ["other_expenses_describe", "Mediocre Concrete Chair"], ["created_at", "2025-04-09 00:26:57.280805"], ["updated_at", "2025-04-09 00:26:57.280805"]]
  TRANSACTION (7.1ms)  COMMIT
=> 
#<AdditionalExpense:0x000076309f39a148
 id: 7,
 case_contact_id: 1,
 other_expense_amount: 0.4082e2,
 other_expenses_describe: "Mediocre Concrete Chair",
 created_at: "2025-04-09 00:26:57.280805000 +0000",
 updated_at: "2025-04-09 00:26:57.280805000 +0000">

casa(dev)> seed_additional_expense(case_contact: CaseContact.first, case_contact_id: 1)
  CaseContact Load (1.1ms)  SELECT "case_contacts".* FROM "case_contacts" WHERE "case_contacts"."deleted_at" IS NULL ORDER BY "case_contacts"."id" ASC LIMIT $1  [["LIMIT", 1]]
(casa):4:in `<top (required)>': cannot use case_contact: and case_contact_id: (ArgumentError)

    raise ArgumentError.new("cannot use case_contact: and case_contact_id:")
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

casa(dev)> seed_additional_expense()
(casa):5:in `<top (required)>': case_contact: or case_contact_id: is required (ArgumentError)

    raise ArgumentError.new("case_contact: or case_contact_id: is required")
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FireLemons avatar Apr 09 '25 00:04 FireLemons

Test for seed_additional_expenses

casa(dev)> seed_additional_expenses(case_contact_ids:[1, 2], count: 2)
  TRANSACTION (0.6ms)  BEGIN
  CaseContact Load (0.9ms)  SELECT "case_contacts".* FROM "case_contacts" WHERE "case_contacts"."deleted_at" IS NULL AND "case_contacts"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
  AdditionalExpense Create (0.8ms)  INSERT INTO "additional_expenses" ("case_contact_id", "other_expense_amount", "other_expenses_describe", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["case_contact_id", 1], ["other_expense_amount", "19.49"], ["other_expenses_describe", "Mediocre Aluminum Chair"], ["created_at", "2025-04-10 21:16:00.210388"], ["updated_at", "2025-04-10 21:16:00.210388"]]
  TRANSACTION (68.3ms)  COMMIT
  TRANSACTION (0.3ms)  BEGIN
  CaseContact Load (0.6ms)  SELECT "case_contacts".* FROM "case_contacts" WHERE "case_contacts"."deleted_at" IS NULL AND "case_contacts"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
  AdditionalExpense Create (1.1ms)  INSERT INTO "additional_expenses" ("case_contact_id", "other_expense_amount", "other_expenses_describe", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["case_contact_id", 1], ["other_expense_amount", "14.63"], ["other_expenses_describe", "Incredible Linen Shirt"], ["created_at", "2025-04-10 21:16:00.286122"], ["updated_at", "2025-04-10 21:16:00.286122"]]
  TRANSACTION (59.4ms)  COMMIT
=> [18, 19]

casa(dev)> seed_additional_expenses(case_contacts: CaseContact.all, case_contact_ids:[1, 2], count: 2)
(casa):6:in `<top (required)>': cannot use case_contacts: and case_contact_ids: (ArgumentError)

    raise ArgumentError.new("cannot use case_contacts: and case_contact_ids:")
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

casa(dev)> seed_additional_expenses(count: 2)
(casa):7:in `<top (required)>': case_contacts: or case_contact_ids: is required (ArgumentError)

    raise ArgumentError.new("case_contacts: or case_contact_ids: is required")
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

casa(dev)> seed_additional_expenses(case_contacts: 2, count: 2)
(casa):2:in `<top (required)>': param case_contacts must be an ActiveRecord::Relation (TypeError)

      raise TypeError.new("param case_contacts must be an ActiveRecord::Relation")
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

casa(dev)> seed_additional_expenses(case_contact_ids: 2, count: 2)
(casa):3:in `<top (required)>': param case_contact_ids: must be an array (TypeError)

      raise TypeError.new("param case_contact_ids: must be an array")
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FireLemons avatar Apr 10 '25 21:04 FireLemons

This PR has been open for a long time without any pushes or comments! What's up?

github-actions[bot] avatar Jun 15 '25 02:06 github-actions[bot]