1- import { Employee } from '../../test/models'
1+ import { Employee , SimpleModel } from '../../test/models'
22import { updateDynamoEasyConfig } from '../config/update-config.function'
33import { DynamoStore } from '../dynamo/dynamo-store'
44import { LogInfo } from './log-info.type'
5+ import { LogLevel } from './log-level.type'
56import { LogReceiver } from './log-receiver.type'
7+ import { createLogger , createOptModelLogger , Logger , OptModelLogger } from './logger'
68
79describe ( 'log receiver' , ( ) => {
810 let logs : LogInfo [ ] = [ ]
@@ -21,3 +23,95 @@ describe('log receiver', () => {
2123 expect ( logs [ 0 ] . modelConstructor ) . toBe ( Employee . name )
2224 } )
2325} )
26+
27+ describe ( 'createLogger' , ( ) => {
28+ let logReceiver : jest . Mock
29+ let logger : Logger
30+ beforeEach ( ( ) => {
31+ logReceiver = jest . fn ( )
32+ updateDynamoEasyConfig ( { logReceiver } )
33+ logger = createLogger ( 'MyClass' , SimpleModel )
34+ } )
35+ it ( 'creates correct Logger instance with working warn function' , ( ) => {
36+ logger . warn ( 'warn' )
37+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
38+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
39+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
40+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
41+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'warn' )
42+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . WARNING )
43+ } )
44+ it ( 'creates correct Logger instance with working info function' , ( ) => {
45+ logger . info ( 'info' )
46+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
47+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
48+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
49+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
50+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'info' )
51+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . INFO )
52+ } )
53+ it ( 'creates correct Logger instance with working debug function' , ( ) => {
54+ logger . debug ( 'debug' )
55+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
56+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
57+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
58+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
59+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'debug' )
60+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . DEBUG )
61+ } )
62+ it ( 'creates correct Logger instance with working debug function' , ( ) => {
63+ logger . verbose ( 'verbose' )
64+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
65+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
66+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
67+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
68+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'verbose' )
69+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . VERBOSE )
70+ } )
71+ } )
72+
73+ describe ( 'createOptModelLogger' , ( ) => {
74+ let logReceiver : jest . Mock
75+ let logger : OptModelLogger
76+ beforeEach ( ( ) => {
77+ logReceiver = jest . fn ( )
78+ updateDynamoEasyConfig ( { logReceiver } )
79+ logger = createOptModelLogger ( 'MyClass' )
80+ } )
81+ it ( 'creates correct OptModelLogger instance with working warn function' , ( ) => {
82+ logger . warn ( 'warn' , SimpleModel )
83+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
84+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
85+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
86+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
87+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'warn' )
88+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . WARNING )
89+ } )
90+ it ( 'creates correct OptModelLogger instance with working info function' , ( ) => {
91+ logger . info ( 'info' , SimpleModel )
92+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
93+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
94+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
95+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
96+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'info' )
97+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . INFO )
98+ } )
99+ it ( 'creates correct OptModelLogger instance with working debug function' , ( ) => {
100+ logger . debug ( 'debug' , SimpleModel )
101+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
102+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
103+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
104+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
105+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'debug' )
106+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . DEBUG )
107+ } )
108+ it ( 'creates correct OptModelLogger instance with working verbose function' , ( ) => {
109+ logger . verbose ( 'verbose' , SimpleModel )
110+ expect ( logReceiver ) . toBeCalledTimes ( 1 )
111+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] ) . toBeDefined ( )
112+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . className ) . toEqual ( 'MyClass' )
113+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . modelConstructor ) . toEqual ( 'SimpleModel' )
114+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . message ) . toEqual ( 'verbose' )
115+ expect ( logReceiver . mock . calls [ 0 ] [ 0 ] . level ) . toEqual ( LogLevel . VERBOSE )
116+ } )
117+ } )
0 commit comments