@@ -6,15 +6,17 @@ import AtlasSDK from '../../index';
6
6
const fs = require ( 'fs' ) ;
7
7
const path = require ( 'path' ) ;
8
8
9
- const RecommendedJSON = fs . readFileSync ( path . join ( __dirname , 'data/recommendation_service_response.json' ) , 'utf8' ) ;
9
+ const recommendedJSON = fs . readFileSync ( path . join ( __dirname , 'data/recommendation_service_response.json' ) , 'utf8' ) ;
10
+ const recommendedBrandJSON = fs . readFileSync ( path . join ( __dirname ,
11
+ 'data/recommendation_service_response_for_brand.json' ) , 'utf8' ) ;
10
12
const configJson = fs . readFileSync ( path . join ( __dirname , 'data/config_service_response.json' ) , 'utf8' ) ;
11
13
12
- test ( 'Article should be initialized from JSON object' , async t => {
14
+ test ( 'Recommended articles should be initialized from JSON object' , async t => {
13
15
fetchMock . get ( 'https://atlas-config-api.dc.zalan.do/api/config/CLIENT_ID-staging.json' , configJson ) ;
14
16
15
17
const url = 'https://catalog_api.com/api/articles/AD112B0F6-A11/recommendations/?client_id=CLIENT_ID&anon_id=1234' ;
16
18
17
- fetchMock . get ( url , RecommendedJSON ) ;
19
+ fetchMock . get ( url , recommendedJSON ) ;
18
20
19
21
const sdk = await AtlasSDK . configure ( {
20
22
client_id : 'CLIENT_ID' ,
@@ -45,3 +47,42 @@ test('Article should be initialized from JSON object', async t => {
45
47
t . is ( recommendedArticles [ 0 ] . images [ 1 ] . resolutions . large , imgURL ) ;
46
48
t . falsy ( recommendedArticles [ recommendedArticles . length - 1 ] . trackingString ) ;
47
49
} ) ;
50
+
51
+ test ( 'Recommended same brand articles should be initialized from JSON object' , async t => {
52
+ fetchMock . get ( 'https://atlas-config-api.dc.zalan.do/api/config/CLIENT_ID-staging.json' , configJson ) ;
53
+
54
+ const url = 'https://catalog_api.com/api/articles/AD112B0F6-A11/recommendations/?client_id=CLIENT_ID&anon_id=12345' ;
55
+
56
+ fetchMock . get ( url , recommendedBrandJSON ) ;
57
+
58
+ const sdk = await AtlasSDK . configure ( {
59
+ client_id : 'CLIENT_ID' ,
60
+ sales_channel : 'SALES_CHANNEL' ,
61
+ is_sandbox : true
62
+ } ) ;
63
+
64
+ const recommendedArticles = await sdk . getRecommendations ( 'AD112B0F6-A11' ,
65
+ {
66
+ type : 'brand' ,
67
+ reco_id : '12345' ,
68
+ tracking_String : 'TRACKING_STRING'
69
+ }
70
+ ) ;
71
+
72
+ const imgURL = 'https://mosaic01.ztat.net/vgs/media/large/SO/25/4J/00/0C/00/SO254J000-C00@1.1.jpg' ;
73
+
74
+ t . is ( recommendedArticles [ 0 ] . id , 'SO254J000-C00' ) ;
75
+ t . is ( recommendedArticles [ 0 ] . brand . name , 's.Oliver' ) ;
76
+ t . is ( recommendedArticles [ 0 ] . name , '6 PACK - Socken - anthracite/grey' ) ;
77
+ t . is ( recommendedArticles [ 0 ] . lowestPrice . amount , 15.95 ) ;
78
+ t . is ( recommendedArticles [ 0 ] . lowestPrice . currency , 'EUR' ) ;
79
+ t . is ( recommendedArticles [ 0 ] . images . length , 7 ) ;
80
+ t . is ( recommendedArticles [ 0 ] . images [ 0 ] . type , 'IMAGE_PARTNER' ) ;
81
+ t . is ( recommendedArticles [ 0 ] . images [ 0 ] . mediaCharacter , 'UNSPECIFIED' ) ;
82
+ t . is ( recommendedArticles [ 0 ] . images [ 0 ] . resolutions . large , imgURL ) ;
83
+ t . is ( recommendedArticles [ 0 ] . images [ 1 ] . type , 'IMAGE' ) ;
84
+ t . is ( recommendedArticles [ 0 ] . images [ 1 ] . mediaCharacter , 'UNSPECIFIED' ) ;
85
+ t . is ( recommendedArticles [ 0 ] . images [ 1 ] . resolutions . large , imgURL ) ;
86
+ t . falsy ( recommendedArticles [ recommendedArticles . length - 1 ] . trackingString ) ;
87
+ } ) ;
88
+
0 commit comments