--- /dev/null
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe BackupPolicy do
+ let(:subject) { described_class }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :create? do
+ context 'not user_signed_in?' do
+ it 'denies' do
+ expect(subject).to_not permit(nil, Backup)
+ end
+ end
+
+ context 'user_signed_in?' do
+ context 'no backups' do
+ it 'permits' do
+ expect(subject).to permit(john, Backup)
+ end
+ end
+
+ context 'backups are too old' do
+ it 'permits' do
+ travel(-8.days) do
+ Fabricate(:backup, user: john.user)
+ end
+
+ expect(subject).to permit(john, Backup)
+ end
+ end
+
+ context 'backups are newer' do
+ it 'denies' do
+ travel(-3.days) do
+ Fabricate(:backup, user: john.user)
+ end
+
+ expect(subject).to_not permit(john, Backup)
+ end
+ end
+ end
+ end
+end