@@ -5,6 +5,7 @@ import jwt from 'jsonwebtoken';
55import app from '../src/app' ;
66import * as Services from '../src/services/slack' ;
77import { getDomainById } from '../src/services/domain' ;
8+ import { getConfig } from '../src/services/config' ;
89import { mock1_slack_installation } from './fixtures/db_slack' ;
910import { EnvType } from '../src/models/environment' ;
1011import Slack from '../src/models/slack' ;
@@ -17,6 +18,7 @@ import {
1718 groupConfigDocument ,
1819 adminAccountToken
1920} from './fixtures/db_api' ;
21+ import { TicketValidationType } from '../src/models/slack_ticket' ;
2022
2123afterAll ( async ( ) => {
2224 await Slack . deleteMany ( ) ;
@@ -474,16 +476,21 @@ describe('Slack Route - Create Ticket', () => {
474476 } ;
475477
476478 //validate
477- await request ( app )
479+ let response = await request ( app )
478480 . post ( '/slack/v1/ticket/validate' )
479481 . set ( 'Authorization' , `Bearer ${ generateToken ( '30s' ) } ` )
480482 . send ( {
481483 team_id : slack . team_id ,
482484 ticket_content
483485 } ) . expect ( 200 ) ;
484486
487+ expect ( response . body ) . toMatchObject ( {
488+ message : 'Ticket validated' ,
489+ result : TicketValidationType . VALIDATED
490+ } ) ;
491+
485492 //test - create
486- const response = await request ( app )
493+ response = await request ( app )
487494 . post ( '/slack/v1/ticket/create' )
488495 . set ( 'Authorization' , `Bearer ${ generateToken ( '30s' ) } ` )
489496 . send ( {
@@ -498,6 +505,64 @@ describe('Slack Route - Create Ticket', () => {
498505 } ) ;
499506 } ) ;
500507
508+ test ( 'SLACK_SUITE - Should NOT create a ticket - Environment Ignored' , async ( ) => {
509+ //given
510+ const ticket_content = {
511+ environment : 'dev' ,
512+ group : groupConfigDocument . name ,
513+ switcher : config1Document . key ,
514+ status : false
515+ } ;
516+
517+ //validate
518+ let switcher = await getConfig ( { key : config1Document . key , domain : slack . domain } ) ;
519+ expect ( switcher . activated . get ( 'dev' ) ) . toBe ( undefined ) ;
520+
521+ const response = await request ( app )
522+ . post ( '/slack/v1/ticket/validate' )
523+ . set ( 'Authorization' , `Bearer ${ generateToken ( '30s' ) } ` )
524+ . send ( {
525+ team_id : slack . team_id ,
526+ ticket_content
527+ } ) . expect ( 200 ) ;
528+
529+ switcher = await getConfig ( { key : config1Document . key , domain : slack . domain } ) ;
530+ expect ( switcher . activated . get ( 'dev' ) ) . toBe ( false ) ;
531+ expect ( response . body ) . toMatchObject ( {
532+ message : 'Ticket validated' ,
533+ result : TicketValidationType . IGNORED_ENVIRONMENT
534+ } ) ;
535+ } ) ;
536+
537+ test ( 'SLACK_SUITE - Should NOT create a ticket - Environment frozen' , async ( ) => {
538+ //given
539+ const ticket_content = {
540+ environment : 'staging' ,
541+ group : groupConfigDocument . name ,
542+ switcher : config1Document . key ,
543+ status : false
544+ } ;
545+
546+ //validate
547+ let switcher = await getConfig ( { key : config1Document . key , domain : slack . domain } ) ;
548+ expect ( switcher . activated . get ( 'staging' ) ) . toBe ( undefined ) ;
549+
550+ const response = await request ( app )
551+ . post ( '/slack/v1/ticket/validate' )
552+ . set ( 'Authorization' , `Bearer ${ generateToken ( '30s' ) } ` )
553+ . send ( {
554+ team_id : slack . team_id ,
555+ ticket_content
556+ } ) . expect ( 200 ) ;
557+
558+ switcher = await getConfig ( { key : config1Document . key , domain : slack . domain } ) ;
559+ expect ( switcher . activated . get ( 'staging' ) ) . toBe ( undefined ) ;
560+ expect ( response . body ) . toMatchObject ( {
561+ message : 'Ticket validated' ,
562+ result : TicketValidationType . FROZEN_ENVIRONMENT
563+ } ) ;
564+ } ) ;
565+
501566 test ( 'SLACK_SUITE - Should NOT create a ticket - Invalid' , async ( ) => {
502567 const ticket_content = {
503568 environment : EnvType . DEFAULT ,
@@ -527,7 +592,7 @@ describe('Slack Route - Create Ticket', () => {
527592 } ;
528593
529594 // Retrieve existing ticket
530- const ticket = await Services . validateTicket (
595+ const { ticket } = await Services . validateTicket (
531596 ticket_content , undefined , slack . team_id ) ;
532597
533598 const response = await request ( app )
0 commit comments