From a785a2784320a7340d36a3daad18bf29a9d6bbfe Mon Sep 17 00:00:00 2001
From: Daniele Rossetti <drossetti@gitlab.com>
Date: Tue, 30 Jan 2024 23:05:27 +0000
Subject: [PATCH] Scaffold Logs UI feature (frontend)

---
 ee/app/assets/javascripts/logs/list_index.vue | 23 +++++++++++++
 .../pages/projects/logs/index/index.js        |  4 +++
 ee/spec/frontend/logs/list_index_spec.js      | 32 +++++++++++++++++++
 3 files changed, 59 insertions(+)
 create mode 100644 ee/app/assets/javascripts/logs/list_index.vue
 create mode 100644 ee/app/assets/javascripts/pages/projects/logs/index/index.js
 create mode 100644 ee/spec/frontend/logs/list_index_spec.js

diff --git a/ee/app/assets/javascripts/logs/list_index.vue b/ee/app/assets/javascripts/logs/list_index.vue
new file mode 100644
index 000000000000..8c910709e1c9
--- /dev/null
+++ b/ee/app/assets/javascripts/logs/list_index.vue
@@ -0,0 +1,23 @@
+<script>
+import ProvisionedObservabilityContainer from '~/observability/components/provisioned_observability_container.vue';
+
+export default {
+  components: {
+    ProvisionedObservabilityContainer,
+  },
+  props: {
+    apiConfig: {
+      type: Object,
+      required: true,
+    },
+  },
+};
+</script>
+
+<template>
+  <provisioned-observability-container :api-config="apiConfig">
+    <template #default>
+      <!-- TODO Implement List UI -->
+    </template>
+  </provisioned-observability-container>
+</template>
diff --git a/ee/app/assets/javascripts/pages/projects/logs/index/index.js b/ee/app/assets/javascripts/pages/projects/logs/index/index.js
new file mode 100644
index 000000000000..8de5f2833eb9
--- /dev/null
+++ b/ee/app/assets/javascripts/pages/projects/logs/index/index.js
@@ -0,0 +1,4 @@
+import ListIndex from 'ee/logs/list_index.vue';
+import { initSimpleApp } from '~/helpers/init_simple_app_helper';
+
+initSimpleApp('#js-observability-logs', ListIndex);
diff --git a/ee/spec/frontend/logs/list_index_spec.js b/ee/spec/frontend/logs/list_index_spec.js
new file mode 100644
index 000000000000..58e872aada42
--- /dev/null
+++ b/ee/spec/frontend/logs/list_index_spec.js
@@ -0,0 +1,32 @@
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import ListIndex from 'ee/logs/list_index.vue';
+import ProvisionedObservabilityContainer from '~/observability/components/provisioned_observability_container.vue';
+
+describe('ListIndex', () => {
+  const props = {
+    apiConfig: {
+      oauthUrl: 'https://example.com/oauth',
+      tracingUrl: 'https://example.com/tracing',
+      provisioningUrl: 'https://example.com/provisioning',
+      servicesUrl: 'https://example.com/services',
+      operationsUrl: 'https://example.com/operations',
+      metricsUrl: 'https://example.com/metricsUrl',
+    },
+  };
+
+  let wrapper;
+
+  const mountComponent = () => {
+    wrapper = shallowMountExtended(ListIndex, {
+      propsData: props,
+    });
+  };
+
+  it('renders provisioned-observability-container component', () => {
+    mountComponent();
+
+    const observabilityContainer = wrapper.findComponent(ProvisionedObservabilityContainer);
+    expect(observabilityContainer.exists()).toBe(true);
+    expect(observabilityContainer.props('apiConfig')).toStrictEqual(props.apiConfig);
+  });
+});
-- 
GitLab