summaryrefslogtreecommitdiff
path: root/spec/frontend/vue_shared/components/identicon_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/vue_shared/components/identicon_spec.js')
-rw-r--r--spec/frontend/vue_shared/components/identicon_spec.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/spec/frontend/vue_shared/components/identicon_spec.js b/spec/frontend/vue_shared/components/identicon_spec.js
new file mode 100644
index 00000000000..0b3dbb61c96
--- /dev/null
+++ b/spec/frontend/vue_shared/components/identicon_spec.js
@@ -0,0 +1,65 @@
+import Vue from 'vue';
+import identiconComponent from '~/vue_shared/components/identicon.vue';
+
+const createComponent = sizeClass => {
+ const Component = Vue.extend(identiconComponent);
+
+ return new Component({
+ propsData: {
+ entityId: 1,
+ entityName: 'entity-name',
+ sizeClass,
+ },
+ }).$mount();
+};
+
+describe('IdenticonComponent', () => {
+ describe('computed', () => {
+ let vm;
+
+ beforeEach(() => {
+ vm = createComponent();
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ describe('identiconBackgroundClass', () => {
+ it('should return bg class based on entityId', () => {
+ vm.entityId = 4;
+
+ expect(vm.identiconBackgroundClass).toBeDefined();
+ expect(vm.identiconBackgroundClass).toBe('bg5');
+ });
+ });
+
+ describe('identiconTitle', () => {
+ it('should return first letter of entity title in uppercase', () => {
+ vm.entityName = 'dummy-group';
+
+ expect(vm.identiconTitle).toBeDefined();
+ expect(vm.identiconTitle).toBe('D');
+ });
+ });
+ });
+
+ describe('template', () => {
+ it('should render identicon', () => {
+ const vm = createComponent();
+
+ expect(vm.$el.nodeName).toBe('DIV');
+ expect(vm.$el.classList.contains('identicon')).toBeTruthy();
+ expect(vm.$el.classList.contains('s40')).toBeTruthy();
+ expect(vm.$el.classList.contains('bg2')).toBeTruthy();
+ vm.$destroy();
+ });
+
+ it('should render identicon with provided sizing class', () => {
+ const vm = createComponent('s32');
+
+ expect(vm.$el.classList.contains('s32')).toBeTruthy();
+ vm.$destroy();
+ });
+ });
+});