Skip to content

Commit 884afec

Browse files
committed
test: 全ての非アクティブDojoがinactivated_atを持つことを検証するテスト追加
以下のテストを追加: 1. 全ての非アクティブDojoにinactivated_atが設定されていることを確認 2. inactivated_atの日付が妥当であることを検証 - 正しくパースできる形式 - 未来の日付でない - created_atより後の日付 このテストにより、Rakeタスクで取得した日付の正確性を検証できます。
1 parent 047db74 commit 884afec

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

spec/models/dojo_spec.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,46 @@
8686
end
8787
end
8888

89+
describe 'validate inactivated_at for inactive dojos' do
90+
it 'ensures all inactive dojos in YAML have inactivated_at date' do
91+
yaml_data = Dojo.load_attributes_from_yaml
92+
inactive_dojos = yaml_data.select { |dojo| dojo['is_active'] == false }
93+
94+
missing_dates = inactive_dojos.select { |dojo| dojo['inactivated_at'].nil? }
95+
96+
if missing_dates.any?
97+
missing_info = missing_dates.map { |d| "ID: #{d['id']} (#{d['name']})" }.join(", ")
98+
fail "以下の非アクティブDojoにinactivated_atが設定されていません: #{missing_info}"
99+
end
100+
101+
expect(inactive_dojos.all? { |dojo| dojo['inactivated_at'].present? }).to be true
102+
end
103+
104+
it 'verifies inactivated_at dates are valid' do
105+
yaml_data = Dojo.load_attributes_from_yaml
106+
inactive_dojos = yaml_data.select { |dojo| dojo['is_active'] == false }
107+
108+
inactive_dojos.each do |dojo|
109+
next if dojo['inactivated_at'].nil?
110+
111+
# 日付が正しくパースできることを確認
112+
expect {
113+
Time.zone.parse(dojo['inactivated_at'])
114+
}.not_to raise_error, "ID: #{dojo['id']} (#{dojo['name']}) のinactivated_atが不正な形式です: #{dojo['inactivated_at']}"
115+
116+
# 未来の日付でないことを確認
117+
date = Time.zone.parse(dojo['inactivated_at'])
118+
expect(date).to be <= Time.current, "ID: #{dojo['id']} (#{dojo['name']}) のinactivated_atが未来の日付です: #{dojo['inactivated_at']}"
119+
120+
# created_atより後の日付であることを確認(もしcreated_atがある場合)
121+
if dojo['created_at'].present?
122+
created_date = Time.zone.parse(dojo['created_at'])
123+
expect(date).to be >= created_date, "ID: #{dojo['id']} (#{dojo['name']}) のinactivated_atがcreated_atより前です"
124+
end
125+
end
126+
end
127+
end
128+
89129
# inactivated_at カラムの基本的なテスト
90130
describe 'inactivated_at functionality' do
91131
before do

0 commit comments

Comments
 (0)