diff --git a/dist/models/Config.js b/dist/models/Config.js index fc49d967..1f0f1c98 100644 --- a/dist/models/Config.js +++ b/dist/models/Config.js @@ -48,7 +48,9 @@ class Config { !this._insertTime || !this._version || !this._analyticsTools || - !this._validationRules + !this._validationRules || + !this._columnData || + !this._columnIndex ); } _buildDependenciesConfig(dependenciesConfig) { diff --git a/src/ts/models/Config.ts b/src/ts/models/Config.ts index c2d0466c..b9fc089f 100644 --- a/src/ts/models/Config.ts +++ b/src/ts/models/Config.ts @@ -13,6 +13,8 @@ export class Config { private _mediaTaxonomy: { [key: string]: any }; private _validationRules: { [key: string]: string[] }; private _columnNames: string[]; + private _columnData: { [key: string]: string[] }; + private _columnIndex: { [key: string]: number }; private _dependenciesConfig: DependencyConfig[]; constructor(jsonConfig: { [key: string]: any }) { @@ -61,7 +63,9 @@ export class Config { !this._insertTime || !this._version || !this._analyticsTools || - !this._validationRules + !this._validationRules || + !this._columnData || + !this._columnIndex ); } diff --git a/test/models/Adobe.spec.ts b/test/models/Adobe.spec.ts index eba10009..66b91775 100644 --- a/test/models/Adobe.spec.ts +++ b/test/models/Adobe.spec.ts @@ -14,7 +14,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: [], Veículo: [], }, @@ -45,7 +45,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meuProdut[ai]/'], Veículo: ['/.*/'], }, @@ -76,7 +76,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], Veículo: [], }, @@ -107,7 +107,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], Veículo: [], }, @@ -138,7 +138,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], Veículo: [], }, @@ -169,7 +169,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], Veículo: [], }, @@ -201,7 +201,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: [], Veículo: [], }, @@ -241,7 +241,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: [], Dispositivo: [], Veículo: [], @@ -289,7 +289,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: [], Dispositivo: [], Veículo: [], @@ -337,7 +337,7 @@ describe('Adobe', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], Veículo: [], }, diff --git a/test/models/Config.spec.ts b/test/models/Config.spec.ts index 850951fb..02d28005 100644 --- a/test/models/Config.spec.ts +++ b/test/models/Config.spec.ts @@ -41,20 +41,26 @@ describe('Config', () => { } }, columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data": [ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0 + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1 + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], produto: ['FIFA', 'PÉS', 'ronaldinho soccer 64'], @@ -114,20 +120,26 @@ describe('Config', () => { } }, columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data": [ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0 + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1 + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], produto: ['FIFA', 'PÉS', 'ronaldinho soccer 64'], @@ -171,20 +183,26 @@ describe('Config', () => { ], spaceSeparator: '+', columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }, @@ -236,20 +254,26 @@ describe('Config', () => { } }, columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }, @@ -289,20 +313,26 @@ describe('Config', () => { } }, columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }, @@ -338,20 +368,26 @@ describe('Config', () => { } }, columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }, @@ -365,20 +401,26 @@ describe('Config', () => { separator: ':', spaceSeparator: '+', columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }, @@ -416,20 +458,26 @@ describe('Config', () => { separator: ':', spaceSeparator: '+', columns: { - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }, @@ -459,20 +507,26 @@ describe('Config', () => { const config = new Config(jsonConfig); expect(JSON.stringify(config.validationRules)).to.equal( JSON.stringify({ - Veículo: [ - 'google_ads', - 'facebook', - 'verizon', - 'globo', - 'afilio', - ], - Inserção: [ - 'CPC', - 'feed', - 'story', - 'native ads', - 'afiliado', - ], + Veículo: { + "data":[ + 'google_ads', + 'facebook', + 'verizon', + 'globo', + 'afilio', + ], + "index": 0, + }, + Inserção: { + "data":[ + 'CPC', + 'feed', + 'story', + 'native ads', + 'afiliado', + ], + "index": 1, + }, campanha: ['fifinha-na-copa', 'fifinha na copa da emoção'], categoriaDoProduto: ['videogame', 'game'], }) diff --git a/test/models/FacebookAds.spec.ts b/test/models/FacebookAds.spec.ts index d5a14ee6..5981f07e 100644 --- a/test/models/FacebookAds.spec.ts +++ b/test/models/FacebookAds.spec.ts @@ -15,7 +15,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['/.*/'], }, @@ -52,7 +52,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, @@ -89,7 +89,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], }, analyticsTools: { @@ -128,7 +128,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['/.*/'], }, @@ -181,7 +181,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, @@ -234,7 +234,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, @@ -287,7 +287,7 @@ describe('FacebookAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, diff --git a/test/models/GA.spec.ts b/test/models/GA.spec.ts index ae126651..0eb3e871 100644 --- a/test/models/GA.spec.ts +++ b/test/models/GA.spec.ts @@ -14,7 +14,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: [], Bandeira: [], }, @@ -48,7 +48,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: ['bandeira2'], }, @@ -81,7 +81,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -115,7 +115,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -149,7 +149,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -183,7 +183,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -219,7 +219,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -262,7 +262,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -312,7 +312,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, @@ -361,7 +361,7 @@ describe('GA', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Período: ['/[a-zA-Z]* [0-9]{4}/'], Bandeira: [], }, diff --git a/test/models/GeneralVehicle.spec.ts b/test/models/GeneralVehicle.spec.ts index d68b5278..9d017521 100644 --- a/test/models/GeneralVehicle.spec.ts +++ b/test/models/GeneralVehicle.spec.ts @@ -15,7 +15,7 @@ describe('Veículo Genérico', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['/.*/'], }, @@ -52,7 +52,7 @@ describe('Veículo Genérico', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, @@ -89,7 +89,7 @@ describe('Veículo Genérico', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], }, analyticsTools: { @@ -127,7 +127,7 @@ describe('Veículo Genérico', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['/.*/'], }, @@ -173,7 +173,7 @@ describe('Veículo Genérico', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, diff --git a/test/models/GoogleAds.spec.ts b/test/models/GoogleAds.spec.ts index 19d90c8a..d3ab0771 100644 --- a/test/models/GoogleAds.spec.ts +++ b/test/models/GoogleAds.spec.ts @@ -15,7 +15,7 @@ describe('GoogleAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['/.*/'], }, @@ -52,7 +52,7 @@ describe('GoogleAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, @@ -91,7 +91,7 @@ describe('GoogleAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['/.*/'], }, @@ -144,7 +144,7 @@ describe('GoogleAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop'], Produto: ['/.*/'], }, @@ -197,7 +197,7 @@ describe('GoogleAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop'], Produto: ['/.*/'], }, @@ -250,7 +250,7 @@ describe('GoogleAds', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Produto: ['fif'], }, diff --git a/test/models/ParametrizerFactory.spec.ts b/test/models/ParametrizerFactory.spec.ts index 6ecb6cc3..e341a43a 100644 --- a/test/models/ParametrizerFactory.spec.ts +++ b/test/models/ParametrizerFactory.spec.ts @@ -16,7 +16,7 @@ describe('ParametrizerFactory', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], Veículo: [], }, @@ -43,7 +43,7 @@ describe('ParametrizerFactory', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Bandeira: ['/meu\\ ?Produto/'], }, analyticsTools: { @@ -67,7 +67,7 @@ describe('ParametrizerFactory', () => { separator: ':', spaceSeparator: '_', columns: { - 'Tipo de Compra': ['cpa', 'cpc'], + 'Tipo de Compra': {"data":['cpa', 'cpc'], "index": 0}, Dispositivo: ['desktop e mobile'], Veículo: ['/.*/'], },