diff --git a/src/components/terminal/Terminal.spec.js b/src/components/terminal/Terminal.spec.js
new file mode 100644
index 000000000..7d2de4114
--- /dev/null
+++ b/src/components/terminal/Terminal.spec.js
@@ -0,0 +1,97 @@
+import { mount } from '@vue/test-utils';
+import TerminalService from '@/components/terminalservice/TerminalService';
+import Terminal from './Terminal.vue';
+
+describe('Terminal.vue', () => {
+ it('should return valid command', async () => {
+ const wrapper = mount({
+ components: {
+ Terminal
+ },
+ template: ``,
+ mounted() {
+ TerminalService.on('command', this.commandHandler);
+ },
+ beforeUnmount() {
+ TerminalService.off('command', this.commandHandler);
+ },
+ methods: {
+ commandHandler(text) {
+ let response;
+ let argsIndex = text.indexOf(' ');
+ let command = argsIndex !== -1 ? text.substring(0, argsIndex) : text;
+
+ switch(command) {
+ case "d":
+ response = 'Valid command';
+ break;
+
+ default:
+ response = "Unknown command: " + command;
+ }
+
+ TerminalService.emit('response', response);
+ }
+ }
+ });
+
+ expect(wrapper.find('.p-terminal.p-component').exists()).toBe(true);
+ expect(wrapper.find('input.p-terminal-input').exists()).toBe(true);
+
+ wrapper.find('input.p-terminal-input').setValue('d');
+
+ wrapper.find('.p-terminal-input').trigger('keydown', {
+ keyCode: 13
+ });
+
+ await wrapper.vm.$nextTick();
+
+ expect(wrapper.find('.p-terminal-response').text()).toBe('Valid command');
+ });
+
+ it('should return invalid command', async () => {
+ const wrapper = mount({
+ components: {
+ Terminal
+ },
+ template: ``,
+ mounted() {
+ TerminalService.on('command', this.commandHandler);
+ },
+ beforeUnmount() {
+ TerminalService.off('command', this.commandHandler);
+ },
+ methods: {
+ commandHandler(text) {
+ let response;
+ let argsIndex = text.indexOf(' ');
+ let command = argsIndex !== -1 ? text.substring(0, argsIndex) : text;
+
+ switch(command) {
+ case "d":
+ response = 'Valid command';
+ break;
+
+ default:
+ response = "Unknown command: " + command;
+ }
+
+ TerminalService.emit('response', response);
+ }
+ }
+ });
+
+ expect(wrapper.find('.p-terminal.p-component').exists()).toBe(true);
+ expect(wrapper.find('input.p-terminal-input').exists()).toBe(true);
+
+ wrapper.find('input.p-terminal-input').setValue('dd');
+
+ wrapper.find('.p-terminal-input').trigger('keydown', {
+ keyCode: 13
+ });
+
+ await wrapper.vm.$nextTick();
+
+ expect(wrapper.find('.p-terminal-response').text()).toBe('Unknown command: dd');
+ });
+});
\ No newline at end of file