2018-02-02 15:24:22 +00:00
const app = require ( '../../../../../client/server/server' ) ;
2018-01-31 11:02:35 +00:00
const catchErrors = require ( '../../../../../../services/utils/jasmineHelpers' ) . catchErrors ;
const restoreFixtures = require ( '../../../../../../services/db/testing_fixtures' ) ;
2018-01-16 20:39:40 +00:00
2018-01-23 08:32:19 +00:00
describe ( 'Client Create' , ( ) => {
2018-01-23 13:18:46 +00:00
let fixturesToApply = { tables : [ '`account`.`user`' , '`vn2008`.`Clientes`' , '`vn2008`.`Consignatarios`' ] , inserts : [
2018-01-23 08:32:19 +00:00
` INSERT INTO account.user(id,name,password,role,active,email)
2018-01-21 16:47:24 +00:00
VALUES
( 1 , 'BruceWayne' , 'ac754a330530832ba1bf7687f577da91' , 2 , 1 , 'BruceWayne@verdnatura.es' ) ,
( 2 , 'PetterParker' , 'ac754a330530832ba1bf7687f577da91' , 2 , 1 , 'PetterParker@verdnatura.es' ) ,
( 3 , 'ClarkKent' , 'ac754a330530832ba1bf7687f577da91' , 2 , 1 , 'ClarkKent@verdnatura.es' ) ,
( 4 , 'TonyStark' , 'ac754a330530832ba1bf7687f577da91' , 2 , 1 , 'TonyStark@verdnatura.es' ) ,
( 5 , 'MaxEisenhardt' , 'ac754a330530832ba1bf7687f577da91' , 2 , 1 , 'MaxEisenhardt@verdnatura.es' ) ,
( 6 , 'DavidCharlesHaller' , 'ac754a330530832ba1bf7687f577da91' , 18 , 1 , 'DavidCharlesHaller@verdnatura.es' ) ,
( 7 , 'HankPym' , 'ac754a330530832ba1bf7687f577da91' , 1 , 1 , 'HankPym@verdnatura.es' ) ,
( 8 , 'CharlesXavier' , 'ac754a330530832ba1bf7687f577da91' , 18 , 1 , 'CharlesXavier@verdnatura.es' ) ,
( 9 , 'BruceBanner' , 'ac754a330530832ba1bf7687f577da91' , 18 , 1 , 'BruceBanner@verdnatura.es' ) ,
( 10 , 'JessicaJones' , 'ac754a330530832ba1bf7687f577da91' , 9 , 1 , 'JessicaJones@verdnatura.es' ) ,
2018-01-23 08:32:19 +00:00
( 11 , 'Cyborg' , 'ac754a330530832ba1bf7687f577da91' , 1 , 1 , 'cyborg@verdnatura.es' ) ;
2018-01-24 12:45:32 +00:00
2018-01-23 13:18:46 +00:00
INSERT INTO salix . Address ( id , consignee , street , city , postcode , provinceFk , phone , mobile , isEnabled , isDefaultAddress , clientFk , defaultAgencyFk , longitude , latitude , isEqualizated )
VALUES
2018-01-23 14:59:21 +00:00
( 1 , 'Bruce Wayne' , 'The Bat cave' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 1 , 2 , NULL , NULL , 0 ) ,
( 2 , 'Petter Parker' , 'NY roofs' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 2 , 2 , NULL , NULL , 0 ) ,
( 3 , 'Clark Kenn' , 'The phone box' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 3 , 2 , NULL , NULL , 0 ) ,
( 4 , 'Tony Stark' , 'Stark tower' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 4 , 2 , NULL , NULL , 0 ) ,
( 5 , 'Max Eisenhardt' , 'The plastic cell' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 5 , 2 , NULL , NULL , 0 ) ,
( 6 , 'David Charles Haller' , 'Many places' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 6 , 2 , NULL , NULL , 0 ) ,
( 7 , 'Hank Pym' , 'Your pocket' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 7 , 2 , NULL , NULL , 0 ) ,
( 8 , 'Charles Xavier' , 'Cerebro' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 8 , 2 , NULL , NULL , 0 ) ,
( 9 , 'Bruce Banner' , 'Somewhere in Thailand' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 9 , 2 , NULL , NULL , 0 ) ,
( 10 , 'Jessica Jones' , 'Luke Cages Bar' , 'Silla' , 46460 , 1 , NULL , NULL , 1 , 1 , 10 , 2 , NULL , NULL , 0 ) ;
2018-01-23 13:18:46 +00:00
2018-01-23 08:32:19 +00:00
INSERT INTO vn . client ( id , name , fi , socialName , contact , street , city , postcode , phone , mobile , fax , isRelevant , email , iban , dueDay , accountingAccount , isEqualizated , provinceFk , hasToInvoice , credit , countryFk , isActive , gestdocFk , quality , payMethodFk , created , isToBeMailed , contactChannelFk , hasSepaVnl , hasCoreVnl , hasCoreVnh , riskCalculated , clientTypeFk , mailAddress , cplusTerIdNifFk , hasToInvoiceByAddress , isTaxDataChecked , isFreezed , creditInsurance , isCreatedAsServed , hasInvoiceSimplified , salesPersonFk , isVies , eypbc )
VALUES
2018-01-23 14:59:21 +00:00
( 1 , 'Bruce Wayne' , '74451390E' , 'Batman' , 'Alfred' , '1007 Mountain Drive, Gotham' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'BruceWayne@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 1 , 0 , 1 ) ,
( 2 , 'Petter Parker' , '87945234L' , 'Spider-Man' , 'Aunt May' , '20 Ingram Street' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'PetterParker@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 1 , 0 , 1 ) ,
( 3 , 'Clark Kent' , '06815934E' , 'Super-Man' , 'lois lane' , '344 Clinton Street' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'ClarkKent@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 1 , 0 , 1 ) ,
( 4 , 'Tony Stark' , '06089160W' , 'Iron-Man' , 'Pepper Potts' , '10880 Malibu Point' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'TonyStark@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 1 , 0 , 1 ) ,
( 5 , 'Max Eisenhardt' , '39182496H' , 'Magneto' , 'Rogue' , 'Unknown Whereabouts' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'MaxEisenhardt@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 3 , 0 , 1 ) ,
( 6 , 'DavidCharlesHaller' , '53136686Q' , 'Legion' , 'Charles Xavier' , 'Evil hideout' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'DavidCharlesHaller@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 3 , 0 , 1 ) ,
( 7 , 'Hank Pym' , '09854837G' , 'Ant-Man' , 'Hawk' , 'Anthill' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'HankPym@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 3 , 0 , 1 ) ,
( 8 , 'Charles Xavier' , '22641921P' , 'Professor X' , 'Beast' , '3800 Victory Pkwy, Cincinnati, OH 45207, USA' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'CharlesXavier@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 4 , 0 , 1 ) ,
( 9 , 'Bruce Banner' , '16104829E' , 'Hulk' , 'Black widow' , 'Somewhere in New York' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'BruceBanner@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 4 , 0 , 1 ) ,
( 10 , 'Jessica Jones' , '58282869H' , 'Jessica Jones' , 'Luke Cage' , 'NYCC 2015 Poster' , 'Silla' , 46460 , 1111111111 , 222222222 , 333333333 , 1 , 'JessicaJones@verdnatura.es' , NULL , 0 , 1234567890 , 0 , 1 , 1 , 300 , 1 , 1 , NULL , 10 , 5 , CURDATE ( ) , 1 , 5 , 1 , 1 , 1 , '0000-00-00' , 1 , NULL , 1 , 1 , 1 , 1 , NULL , 0 , 0 , 4 , 0 , 1 ) ; `
2018-01-21 16:47:24 +00:00
] } ;
2018-01-23 08:32:19 +00:00
2018-01-21 16:47:24 +00:00
beforeEach ( done => {
restoreFixtures ( fixturesToApply , done ) ;
2018-01-16 20:39:40 +00:00
} ) ;
2018-01-24 07:09:39 +00:00
afterAll ( done => {
restoreFixtures ( fixturesToApply , done ) ;
} ) ;
2018-01-17 11:46:26 +00:00
let newAccountData = {
2018-01-23 08:32:19 +00:00
active : true ,
2018-01-17 11:46:26 +00:00
name : 'Wade' ,
userName : 'Deadpool' ,
email : 'Deadpool@marvel.com' ,
fi : 'DP' ,
2018-01-23 08:32:19 +00:00
socialName : 'Deadpool Marvel' ,
salesPersonFk : 1
2017-09-20 12:01:33 +00:00
} ;
2017-09-10 18:04:22 +00:00
2018-01-17 11:46:26 +00:00
it ( 'should find Charles Xavier' , done => {
2018-01-16 20:39:40 +00:00
app . models . Account . findOne ( { where : { name : 'CharlesXavier' } } )
2018-02-02 15:24:22 +00:00
. then ( account => {
expect ( account . name ) . toEqual ( 'CharlesXavier' ) ;
done ( ) ;
} ) ;
2018-01-16 20:39:40 +00:00
} ) ;
2018-02-02 15:24:22 +00:00
it ( ` should not find Deadpool as he's not created yet ` , done => {
2018-01-17 11:46:26 +00:00
app . models . Account . findOne ( { where : { name : newAccountData . userName } } )
2018-02-02 15:24:22 +00:00
. then ( account => {
expect ( account ) . toEqual ( null ) ;
app . models . Client . findOne ( { where : { name : newAccountData . name } } )
. then ( client => {
expect ( client ) . toEqual ( null ) ;
done ( ) ;
} ) ;
} )
. catch ( catchErrors ( done ) ) ;
2018-01-17 11:46:26 +00:00
} ) ;
it ( 'should not be able to create a user if exists' , done => {
app . models . Client . findOne ( { where : { name : 'Charles Xavier' } } )
2018-02-02 15:24:22 +00:00
. then ( client => {
app . models . Account . findOne ( { where : { id : client . id } } )
. then ( account => {
let formerAccountData = {
name : client . name ,
userName : account . name ,
email : client . email ,
fi : client . fi ,
socialName : client . socialName
} ;
2018-01-17 11:46:26 +00:00
2018-02-02 15:24:22 +00:00
app . models . Client . createWithUser ( formerAccountData , ( err , client ) => {
expect ( err . details . codes . name [ 0 ] ) . toEqual ( 'uniqueness' ) ;
done ( ) ;
} ) ;
} ) ;
} )
. catch ( catchErrors ( done ) ) ;
2017-09-20 12:01:33 +00:00
} ) ;
2018-01-17 11:46:26 +00:00
2018-01-23 08:32:19 +00:00
it ( 'should create a new account' , done => {
2018-01-31 11:17:17 +00:00
app . models . Client . createWithUser ( newAccountData , ( error , client ) => {
2018-01-23 08:32:19 +00:00
if ( error ) return catchErrors ( done ) ( error ) ;
app . models . Account . findOne ( { where : { name : newAccountData . userName } } )
2018-02-02 15:24:22 +00:00
. then ( account => {
expect ( account . name ) . toEqual ( newAccountData . userName ) ;
app . models . Client . findOne ( { where : { name : newAccountData . name } } )
. then ( client => {
expect ( client . id ) . toEqual ( account . id ) ;
expect ( client . name ) . toEqual ( newAccountData . name ) ;
expect ( client . email ) . toEqual ( newAccountData . email ) ;
expect ( client . fi ) . toEqual ( newAccountData . fi ) ;
expect ( client . socialName ) . toEqual ( newAccountData . socialName ) ;
done ( ) ;
} ) ;
} )
. catch ( catchErrors ( done ) ) ;
2018-01-23 08:32:19 +00:00
} ) ;
} ) ;
2017-09-20 12:01:33 +00:00
} ) ;