module FrozenRecord::TestHelper
Constants
- NoFixturesLoaded
Public Class Methods
load_fixture(model_class, alternate_base_path)
click to toggle source
# File lib/frozen_record/test_helper.rb, line 8 def load_fixture(model_class, alternate_base_path) @cache ||= {} ensure_model_class_is_frozenrecord(model_class) return if @cache.key?(model_class) @cache[model_class] = base_path_if_file_present(model_class) model_class.base_path = alternate_base_path model_class.load_records(force: true) end
unload_fixture(model_class)
click to toggle source
# File lib/frozen_record/test_helper.rb, line 21 def unload_fixture(model_class) return unless defined?(@cache) && @cache ensure_model_class_is_frozenrecord(model_class) return unless @cache.key?(model_class) old_base_path = @cache[model_class] if old_base_path model_class.base_path = old_base_path model_class.load_records(force: true) end @cache.delete(model_class) end
unload_fixtures()
click to toggle source
# File lib/frozen_record/test_helper.rb, line 36 def unload_fixtures return unless defined?(@cache) && @cache @cache.keys.each { |model_class| unload_fixture(model_class) } end
Private Class Methods
base_path_if_file_present(model_class)
click to toggle source
Checks for the existence of the file for the frozen_record in the default directory. Returns the base_path if the file is present, otherwise nil. Some tests define specific test classes that do ONLY exist in the alternate directory. As ‘unload_fixture(s)` tries to force load the default file, it would raise an error for the “test only” fixtures. The nil value in the cache handles that case gracefully.
# File lib/frozen_record/test_helper.rb, line 49 def base_path_if_file_present(model_class) if File.exist?(model_class.file_path) model_class.base_path else nil end end
ensure_model_class_is_frozenrecord(model_class)
click to toggle source
# File lib/frozen_record/test_helper.rb, line 57 def ensure_model_class_is_frozenrecord(model_class) unless model_class < FrozenRecord::Base raise ArgumentError, "Model class (#{model_class}) does not inherit from #{FrozenRecord::Base}" end end