event_log.rb 5.21 KB
Newer Older
1 2
# frozen_string_literal: true

3
FactoryBot.define do
Ryan Cobb's avatar
Ryan Cobb committed
4
  factory :geo_event_log, class: 'Geo::EventLog' do
5 6 7 8
    trait :created_event do
      repository_created_event factory: :geo_repository_created_event
    end

9
    trait :updated_event do
10
      repository_updated_event factory: :geo_repository_updated_event
11 12 13
    end

    trait :deleted_event do
14
      repository_deleted_event factory: :geo_repository_deleted_event
15
    end
16 17

    trait :renamed_event do
18
      repository_renamed_event factory: :geo_repository_renamed_event
19
    end
20 21 22 23

    trait :hashed_storage_migration_event do
      hashed_storage_migrated_event factory: :geo_hashed_storage_migrated_event
    end
24

25 26 27 28
    trait :hashed_storage_attachments_event do
      hashed_storage_attachments_event factory: :geo_hashed_storage_attachments_event
    end

29 30 31
    trait :job_artifact_deleted_event do
      job_artifact_deleted_event factory: :geo_job_artifact_deleted_event
    end
32 33 34 35

    trait :upload_deleted_event do
      upload_deleted_event factory: :geo_upload_deleted_event
    end
36 37 38 39

    trait :reset_checksum_event do
      reset_checksum_event factory: :geo_reset_checksum_event
    end
40 41 42 43

    trait :cache_invalidation_event do
      cache_invalidation_event factory: :geo_cache_invalidation_event
    end
44 45 46 47

    trait :container_repository_updated_event do
      container_repository_updated_event factory: :geo_container_repository_updated_event
    end
48 49 50 51

    trait :design_repository_updated_event do
      repository_updated_event factory: :geo_design_repository_updated_event
    end
52

53
    trait :geo_event do
54 55
      event factory: :geo_event
    end
56 57
  end

Ryan Cobb's avatar
Ryan Cobb committed
58
  factory :geo_repository_created_event, class: 'Geo::RepositoryCreatedEvent' do
59 60 61 62 63
    project

    repository_storage_name { project.repository_storage }
    add_attribute(:repo_path) { project.disk_path }
    project_name { project.name }
Nick Thomas's avatar
Nick Thomas committed
64
    wiki_path { project.wiki.disk_path }
65 66
  end

Ryan Cobb's avatar
Ryan Cobb committed
67
  factory :geo_repository_updated_event, class: 'Geo::RepositoryUpdatedEvent' do
68 69
    project

70 71 72 73 74
    source { Geo::RepositoryUpdatedEvent::REPOSITORY }
    branches_affected { 0 }
    tags_affected { 0 }
  end

Ryan Cobb's avatar
Ryan Cobb committed
75
  factory :geo_design_repository_updated_event, class: 'Geo::RepositoryUpdatedEvent' do
76 77 78
    project

    source { Geo::RepositoryUpdatedEvent::DESIGN }
79 80
    branches_affected { 0 }
    tags_affected { 0 }
81
  end
82

Ryan Cobb's avatar
Ryan Cobb committed
83
  factory :geo_repository_deleted_event, class: 'Geo::RepositoryDeletedEvent' do
84 85 86
    project

    repository_storage_name { project.repository_storage }
87
    deleted_path { project.full_path }
88 89
    deleted_project_name { project.name }
  end
90

Ryan Cobb's avatar
Ryan Cobb committed
91
  factory :geo_repositories_changed_event, class: 'Geo::RepositoriesChangedEvent' do
92 93
    geo_node
  end
94

Ryan Cobb's avatar
Ryan Cobb committed
95
  factory :geo_repository_renamed_event, class: 'Geo::RepositoryRenamedEvent' do
96
    project { association(:project, :repository) }
97 98 99

    repository_storage_name { project.repository_storage }
    old_path_with_namespace { project.path_with_namespace }
100
    new_path_with_namespace { "#{project.path_with_namespace}_new" }
101
    old_wiki_path_with_namespace { project.wiki.path_with_namespace }
102
    new_wiki_path_with_namespace { "#{project.wiki.path_with_namespace}_new" }
103
    old_path { project.path }
104
    new_path { "#{project.path}_new" }
105
  end
106

Ryan Cobb's avatar
Ryan Cobb committed
107
  factory :geo_hashed_storage_migrated_event, class: 'Geo::HashedStorageMigratedEvent' do
108
    project { association(:project, :repository) }
109 110 111

    repository_storage_name { project.repository_storage }
    old_disk_path { project.path_with_namespace }
112
    new_disk_path { "#{project.path_with_namespace}_new" }
113
    old_wiki_disk_path { project.wiki.path_with_namespace }
114
    new_wiki_disk_path { "#{project.wiki.path_with_namespace}_new" }
115
    new_storage_version { Project::HASHED_STORAGE_FEATURES[:repository] }
116
  end
117

Ryan Cobb's avatar
Ryan Cobb committed
118
  factory :geo_hashed_storage_attachments_event, class: 'Geo::HashedStorageAttachmentsEvent' do
119
    project { association(:project, :repository) }
120 121

    old_attachments_path { Storage::LegacyProject.new(project).disk_path }
122
    new_attachments_path { Storage::Hashed.new(project).disk_path }
123 124
  end

Ryan Cobb's avatar
Ryan Cobb committed
125
  factory :geo_job_artifact_deleted_event, class: 'Geo::JobArtifactDeletedEvent' do
126
    job_artifact { association(:ci_job_artifact, :archive) }
127 128

    after(:build, :stub) do |event, _|
129
      local_store_path = Pathname.new(JobArtifactUploader.root)
130 131 132
      relative_path = Pathname.new(event.job_artifact.file.path).relative_path_from(local_store_path)

      event.file_path = relative_path
133 134
    end
  end
135

Ryan Cobb's avatar
Ryan Cobb committed
136
  factory :geo_upload_deleted_event, class: 'Geo::UploadDeletedEvent' do
137
    upload { association(:upload) }
138 139 140 141 142 143
    file_path { upload.path }
    model_id { upload.model_id }
    model_type { upload.model_type }
    uploader { upload.uploader }

    trait :issuable_upload do
144
      upload { association(:upload, :issuable_upload) }
145 146 147
    end

    trait :personal_snippet do
148
      upload { association(:upload, :personal_snippet) }
149 150 151
    end

    trait :namespace_upload do
152
      upload { association(:upload, :namespace_upload) }
153 154
    end
  end
155

Ryan Cobb's avatar
Ryan Cobb committed
156
  factory :geo_reset_checksum_event, class: 'Geo::ResetChecksumEvent' do
157 158
    project
  end
159

Ryan Cobb's avatar
Ryan Cobb committed
160
  factory :geo_cache_invalidation_event, class: 'Geo::CacheInvalidationEvent' do
161 162
    sequence(:key) { |n| "cache-key-#{n}" }
  end
163

Ryan Cobb's avatar
Ryan Cobb committed
164
  factory :geo_container_repository_updated_event, class: 'Geo::ContainerRepositoryUpdatedEvent' do
165 166
    container_repository
  end
167
end