spec/utility/elasticsearch/mappings_spec.rb (48 lines of code) (raw):
# frozen_string_literal: true
#
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.
#
require 'spec_helper'
require 'utility/elasticsearch/index/mappings'
describe Utility::Elasticsearch::Index::Mappings do
describe '#default_text_fields_mappings' do
let(:crawler_index) { false }
subject { Utility::Elasticsearch::Index::Mappings.default_text_fields_mappings(connectors_index: connectors_index, crawler_index: crawler_index) }
context 'when the index is a connectors index' do
let(:connectors_index) { true }
it { is_expected.to be_kind_of(Hash) }
it { is_expected.to include(dynamic: true, dynamic_templates: Array, properties: Hash) }
it { is_expected.to include(properties: { id: Hash, _subextracted_as_of: Hash, _subextracted_version: Hash }) }
end
context 'when the index is not a connectors index' do
let(:connectors_index) { false }
it { is_expected.to be_kind_of(Hash) }
it { is_expected.to include(dynamic: true, dynamic_templates: Array, properties: Hash) }
it { is_expected.not_to include(properties: { id: Hash, _subextracted_as_of: Hash, _subextracted_version: Hash }) }
context 'when the index is a crawler index' do
let(:crawler_index) { true }
let(:expected_props) do
{
properties: {
id: Hash,
additional_urls: Hash,
body_content: Hash,
domains: Hash,
headings: Hash,
last_crawled_at: Hash,
links: Hash,
meta_description: Hash,
meta_keywords: Hash,
title: Hash,
url: Hash,
url_host: Hash,
url_path: Hash,
url_path_dir1: Hash,
url_path_dir2: Hash,
url_path_dir3: Hash,
url_port: Hash,
url_scheme: Hash
}
}
end
it { is_expected.to include(expected_props) }
end
end
end
end