Welcome to mirror list, hosted at ThFree Co, Russian Federation.

project_registry_spec.rb « geo « models « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c6033141c53cc33a7561f7d9c9d7c375206d12ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
require 'spec_helper'

describe Geo::ProjectRegistry, models: true do
  describe 'relationships' do
    it { is_expected.to belong_to(:project) }
  end

  describe 'validations' do
    it { is_expected.to validate_presence_of(:project) }
  end

  describe '.synced' do
    let(:project) { create(:empty_project) }
    let(:synced_at) { Time.now }

    it 'does not return dirty projects' do
      create(:geo_project_registry, :synced, :dirty, project: project)

      expect(described_class.synced).to be_empty
    end

    it 'does not return projects where last attempt to sync failed' do
      create(:geo_project_registry, :sync_failed, project: project)

      expect(described_class.synced).to be_empty
    end

    it 'returns synced projects' do
      registry = create(:geo_project_registry, :synced, project: project)

      expect(described_class.synced).to match_array([registry])
    end
  end

  describe '#resync_repository?' do
    it 'returns true when resync_repository is true' do
      subject.resync_repository = true

      expect(subject.resync_repository).to be true
    end

    it 'returns true when last_repository_successful_sync_at is nil' do
      subject.last_repository_successful_sync_at = nil

      expect(subject.resync_repository).to be true
    end

    it 'returns false when resync_repository is false and last_repository_successful_sync_at is present' do
      subject.resync_repository = false
      subject.last_repository_successful_sync_at = Time.now

      expect(subject.resync_repository).to be false
    end
  end

  describe '#resync_wiki?' do
    it 'returns true when resync_wiki is true' do
      subject.resync_wiki = true

      expect(subject.resync_wiki).to be true
    end

    it 'returns true when last_wiki_successful_sync_at is nil' do
      subject.last_wiki_successful_sync_at = nil

      expect(subject.resync_wiki).to be true
    end

    it 'returns false when resync_wiki is false and last_wiki_successful_sync_at is present' do
      subject.resync_wiki = false
      subject.last_wiki_successful_sync_at = Time.now

      expect(subject.resync_wiki).to be false
    end
  end

  describe '#repository_synced_since?' do
    it 'returns false when last_repository_synced_at is nil' do
      subject.last_repository_synced_at = nil

      expect(subject.repository_synced_since?(Time.now)).to be_nil
    end

    it 'returns false when last_repository_synced_at before timestamp' do
      subject.last_repository_synced_at = Time.now - 2.hours

      expect(subject.repository_synced_since?(Time.now)).to be false
    end

    it 'returns true when last_repository_synced_at after timestamp' do
      subject.last_repository_synced_at = Time.now + 2.hours

      expect(subject.repository_synced_since?(Time.now)).to be true
    end
  end

  describe '#wiki_synced_since?' do
    it 'returns false when last_wiki_synced_at is nil' do
      subject.last_wiki_synced_at = nil

      expect(subject.wiki_synced_since?(Time.now)).to be_nil
    end

    it 'returns false when last_wiki_synced_at before timestamp' do
      subject.last_wiki_synced_at = Time.now - 2.hours

      expect(subject.wiki_synced_since?(Time.now)).to be false
    end

    it 'returns true when last_wiki_synced_at after timestamp' do
      subject.last_wiki_synced_at = Time.now + 2.hours

      expect(subject.wiki_synced_since?(Time.now)).to be true
    end
  end
end