spec/factories/crawl_results.rb (104 lines of code) (raw):

# # Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one # or more contributor license agreements. Licensed under the Elastic License 2.0; # you may not use this file except in compliance with the Elastic License 2.0. # # frozen_string_literal: true FactoryBot.define do factory :html_crawl_result, class: Crawler::Data::CrawlResult::HTML do url { 'http://example.com/' } status_code { 200 } content { 'Lorem ipsum' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, content: ) end end factory :content_extractable_file_crawl_result, class: Crawler::Data::CrawlResult::ContentExtractableFile do url { 'http://example.com/test.pdf' } status_code { 200 } content { 'Lorem ipsum' } content_length { 1_000 } content_type { 'application/pdf' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, content:, content_length:, content_type: ) end end factory :robots_crawl_result, class: Crawler::Data::CrawlResult::RobotsTxt do url { 'http://example.com/robots.txt' } status_code { 200 } content { '' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, content: ) end end factory :sitemap_crawl_result, class: Crawler::Data::CrawlResult::Sitemap do url { 'http://example.com/sitemap.xml' } status_code { 200 } content { '' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, content: ) end end factory :redirect_crawl_result, class: Crawler::Data::CrawlResult::Redirect do url { 'http://example.com/' } status_code { 301 } location { 'http://example.com/new-location' } redirect_chain { [] } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, location: Crawler::Data::URL.parse(location), redirect_chain: ) end end factory :error_crawl_result, class: Crawler::Data::CrawlResult::Error do url { 'http://example.com/' } status_code { 404 } error { 'Not found' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, error: ) end end factory :not_found_crawl_result, class: Crawler::Data::CrawlResult::Error do url { 'http://example.com/' } status_code { 404 } error { 'Not found' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, error: ) end end factory :transient_error_crawl_result, class: Crawler::Data::CrawlResult::Error do url { 'http://example.com/' } status_code { 500 } error { 'Transient Error' } initialize_with do new( url: Crawler::Data::URL.parse(url), status_code:, error: ) end end end