diff --git a/src/services/connection.service.spec.ts b/src/services/connection.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..80abf8afd491c8e3e4330f528bc9e66957e617cd
--- /dev/null
+++ b/src/services/connection.service.spec.ts
@@ -0,0 +1,98 @@
+import ConnectionService from './connection.service'
+import mockClient from './__mocks__/client'
+import konnectorsData from './__mocks__/konnectorsData.json'
+import accountsData from './__mocks__/accountsData.json'
+import triggerData from './__mocks__/triggersData.json'
+
+const mockGetKonnector = jest.fn()
+jest.mock('./konnector.service', () => {
+  return jest.fn(() => {
+    return {
+      getKonnector: mockGetKonnector,
+    }
+  })
+})
+
+const mockCreateAccount = jest.fn()
+jest.mock('./account.service', () => {
+  return jest.fn(() => {
+    return {
+      createAccount: mockCreateAccount,
+    }
+  })
+})
+
+const mockCreateTrigger = jest.fn()
+jest.mock('./triggers.service', () => {
+  return jest.fn(() => {
+    return {
+      createTrigger: mockCreateTrigger,
+    }
+  })
+})
+
+describe('Connection service', () => {
+  const connectionService = new ConnectionService(mockClient)
+
+  describe('connectNewUser method', () => {
+    it('shoud return created Trigger', async () => {
+      mockGetKonnector.mockResolvedValueOnce(konnectorsData[0])
+      mockCreateAccount.mockResolvedValueOnce(accountsData[0])
+      mockCreateTrigger.mockResolvedValueOnce(triggerData[0])
+      const mockResult = { account: accountsData[0], trigger: triggerData[0] }
+      const result = await connectionService.connectNewUser(
+        konnectorsData[0]._id,
+        'login',
+        'password'
+      )
+      expect(result).toEqual(mockResult)
+    })
+
+    it('shoud throw error when konnector is not found', async () => {
+      let error
+      try {
+        await connectionService.connectNewUser(
+          konnectorsData[0]._id,
+          'login',
+          'password'
+        )
+      } catch (err) {
+        error = err
+      }
+      expect(error).toEqual(
+        new Error(`Could not find konnector for ${konnectorsData[0]._id}`)
+      )
+    })
+
+    it('shoud throw error when account is not created', async () => {
+      mockGetKonnector.mockResolvedValueOnce(konnectorsData[0])
+      let error
+      try {
+        await connectionService.connectNewUser(
+          konnectorsData[0]._id,
+          'login',
+          'password'
+        )
+      } catch (err) {
+        error = err
+      }
+      expect(error).toEqual(new Error(`Error during account creation`))
+    })
+
+    it('shoud throw error when trigger is not created', async () => {
+      mockGetKonnector.mockResolvedValueOnce(konnectorsData[0])
+      mockCreateAccount.mockResolvedValueOnce(accountsData[0])
+      let error
+      try {
+        await connectionService.connectNewUser(
+          konnectorsData[0]._id,
+          'login',
+          'password'
+        )
+      } catch (err) {
+        error = err
+      }
+      expect(error).toEqual(new Error(`Error during trigger creation`))
+    })
+  })
+})
diff --git a/src/services/connection.service.ts b/src/services/connection.service.ts
index 3c22206fca5c0fdc9a5c17f70021a726ae681071..280a2e06b69e23fa40c626dbc1c6efa7ef0fbdee 100644
--- a/src/services/connection.service.ts
+++ b/src/services/connection.service.ts
@@ -15,7 +15,7 @@ export default class ConnectionService {
     konnectorId: string,
     login: string,
     password: string
-  ) {
+  ): Promise<{ account: Account; trigger: Trigger }> {
     // Retrieve konnector
     const konnectorService = new KonnectorService(this._client)
     const konnector: Konnector = await konnectorService.getKonnector(