Last active
November 1, 2023 02:58
-
-
Save kaspth/efb4b5c0c2201564c764aeade08e4ad7 to your computer and use it in GitHub Desktop.
A showcase of oaken, using data from its test suite. Early Access at: https://kaspthrb.gumroad.com/l/open-source-retreat-summer-2023
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
donuts = accounts.create :kaspers_donuts, name: "Kasper's Donuts" | |
kasper = users.create :kasper, name: "Kasper", accounts: [donuts] | |
coworker = users.create :coworker, name: "Coworker", accounts: [donuts] | |
menu = menus.create account: donuts | |
plain_donut = menu_items.create menu: menu, name: "Plain", price_cents: 10_00 | |
sprinkled_donut = menu_items.create menu: menu, name: "Sprinkled", price_cents: 10_10 | |
supporter = users.create name: "Super Supporter" | |
orders.insert_all [user_id: supporter.id, item_id: plain_donut.id] * 10 | |
orders.insert_all \ | |
10.times.map { { user_id: users.create(name: "Customer #{_1}").id, item_id: menu.items.sample.id } } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
plans.insert :basic, title: "Basic", price_cents: 10_00 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oaken.prepare do | |
register Menu::Item | |
seed :accounts, :data | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "test_helper" | |
class PaginationTest < ActiveSupport::TestCase | |
seed "cases/pagination" # Allows you to seed custom cases too. | |
test "pagination sorta" do | |
assert_operator Order.count, :>=, 100 | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "test_helper" | |
class AccountTest < ActiveSupport::TestCase | |
test "something" do | |
assert accounts.kaspers_donuts # `create :kaspers_donuts` defines a reader method on `accounts` to find the same record again. | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ENV["RAILS_ENV"] ||= "test" | |
require_relative "../config/environment" | |
require "rails/test_help" | |
# ActiveRecord::Base.logger = Logger.new(STDOUT) | |
class ActiveSupport::TestCase | |
# Run tests in parallel with specified workers | |
parallelize workers: :number_of_processors | |
# Loads from db/seeds.rb to reuse the same data that devs see in browsers and help reinforce your object graph's connections in tests. | |
include Oaken.seeds | |
# Override Minitest::Test#run to wrap each test in a transaction. | |
def run | |
result = nil | |
ActiveRecord::Base.transaction(requires_new: true) do | |
result = super | |
raise ActiveRecord::Rollback | |
end | |
result | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment