summaryrefslogtreecommitdiff
path: root/spec/frontend/environments/environment_rollback_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/environments/environment_rollback_spec.js')
-rw-r--r--spec/frontend/environments/environment_rollback_spec.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/frontend/environments/environment_rollback_spec.js b/spec/frontend/environments/environment_rollback_spec.js
new file mode 100644
index 00000000000..fb62a096c3d
--- /dev/null
+++ b/spec/frontend/environments/environment_rollback_spec.js
@@ -0,0 +1,53 @@
+import { shallowMount, mount } from '@vue/test-utils';
+import { GlButton } from '@gitlab/ui';
+import eventHub from '~/environments/event_hub';
+import RollbackComponent from '~/environments/components/environment_rollback.vue';
+
+describe('Rollback Component', () => {
+ const retryUrl = 'https://gitlab.com/retry';
+
+ it('Should render Re-deploy label when isLastDeployment is true', () => {
+ const wrapper = mount(RollbackComponent, {
+ propsData: {
+ retryUrl,
+ isLastDeployment: true,
+ environment: {},
+ },
+ });
+
+ expect(wrapper.element).toHaveSpriteIcon('repeat');
+ });
+
+ it('Should render Rollback label when isLastDeployment is false', () => {
+ const wrapper = mount(RollbackComponent, {
+ propsData: {
+ retryUrl,
+ isLastDeployment: false,
+ environment: {},
+ },
+ });
+
+ expect(wrapper.element).toHaveSpriteIcon('redo');
+ });
+
+ it('should emit a "rollback" event on button click', () => {
+ const eventHubSpy = jest.spyOn(eventHub, '$emit');
+ const wrapper = shallowMount(RollbackComponent, {
+ propsData: {
+ retryUrl,
+ environment: {
+ name: 'test',
+ },
+ },
+ });
+ const button = wrapper.find(GlButton);
+
+ button.vm.$emit('click');
+
+ expect(eventHubSpy).toHaveBeenCalledWith('requestRollbackEnvironment', {
+ retryUrl,
+ isLastDeployment: true,
+ name: 'test',
+ });
+ });
+});