diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/update_source_editor.test.tsx.snap b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/update_source_editor.test.tsx.snap
new file mode 100644
index 0000000000000..97d51e77fb87c
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/__snapshots__/update_source_editor.test.tsx.snap
@@ -0,0 +1,181 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`source editor geo_grid_source default vector layer config should allow super-fine option 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`source editor geo_grid_source should put limitations based on heatmap-rendering selection should disable multiple metrics 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`source editor geo_grid_source should put limitations based on heatmap-rendering selection should not allow super-fine option for heatmaps 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.test.tsx b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.test.tsx
new file mode 100644
index 0000000000000..909dd210593ff
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.test.tsx
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+import React from 'react';
+import { shallow } from 'enzyme';
+
+// @ts-expect-error
+import { ResolutionEditor } from './resolution_editor';
+import { GRID_RESOLUTION } from '../../../../common/constants';
+
+const defaultProps = {
+ resolution: GRID_RESOLUTION.COARSE,
+ onChange: () => {},
+ includeSuperFine: false,
+};
+
+describe('resolution editor', () => {
+ test('should omit super-fine option', async () => {
+ const component = shallow();
+ expect(component).toMatchSnapshot();
+ });
+ test('should add super-fine option', async () => {
+ const component = shallow();
+ expect(component).toMatchSnapshot();
+ });
+});
diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.test.tsx b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.test.tsx
new file mode 100644
index 0000000000000..2d9dce6c82f88
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.test.tsx
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+import React from 'react';
+import { shallow } from 'enzyme';
+
+// @ts-expect-error
+import { UpdateSourceEditor } from './update_source_editor';
+import { GRID_RESOLUTION, LAYER_TYPE, RENDER_AS } from '../../../../common/constants';
+
+const defaultProps = {
+ currentLayerType: LAYER_TYPE.VECTOR,
+ indexPatternId: 'foobar',
+ onChange: () => {},
+ metrics: [],
+ renderAs: RENDER_AS.POINT,
+ resolution: GRID_RESOLUTION.COARSE,
+};
+
+describe('source editor geo_grid_source', () => {
+ describe('default vector layer config', () => {
+ test('should allow super-fine option', async () => {
+ const component = shallow();
+ expect(component).toMatchSnapshot();
+ });
+ });
+
+ describe('should put limitations based on heatmap-rendering selection', () => {
+ test('should not allow super-fine option for heatmaps', async () => {
+ const component = shallow(
+
+ );
+ expect(component).toMatchSnapshot();
+ });
+ test('should disable multiple metrics', async () => {
+ const component = shallow(
+
+ );
+ expect(component).toMatchSnapshot();
+ });
+ });
+});