|
10 | 10 | * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions |
11 | 11 | * and limitations under the License. |
12 | 12 | */ |
13 | | -import { ClickstreamAnalytics } from '../index'; |
| 13 | +import { ClickstreamAnalytics, Attr, Event } from '../index'; |
14 | 14 | import { NativeModules } from 'react-native'; |
15 | 15 |
|
16 | 16 | jest.mock('react-native', () => { |
@@ -129,18 +129,18 @@ describe('ClickstreamAnalytics test', () => { |
129 | 129 |
|
130 | 130 | test('test record custom screen view events', () => { |
131 | 131 | ClickstreamAnalytics.record({ |
132 | | - name: ClickstreamAnalytics.Event.SCREEN_VIEW, |
| 132 | + name: Event.SCREEN_VIEW, |
133 | 133 | attributes: { |
134 | | - [ClickstreamAnalytics.Attr.SCREEN_NAME]: 'HomeComponent', |
135 | | - [ClickstreamAnalytics.Attr.SCREEN_UNIQUE_ID]: '123adf', |
| 134 | + [Attr.SCREEN_NAME]: 'HomeComponent', |
| 135 | + [Attr.SCREEN_UNIQUE_ID]: '123adf', |
136 | 136 | }, |
137 | 137 | }); |
138 | 138 | expect(NativeModules.ClickstreamReactNative.record).toHaveBeenCalledWith( |
139 | 139 | expect.objectContaining({ |
140 | | - name: ClickstreamAnalytics.Event.SCREEN_VIEW, |
| 140 | + name: Event.SCREEN_VIEW, |
141 | 141 | attributes: { |
142 | | - [ClickstreamAnalytics.Attr.SCREEN_NAME]: 'HomeComponent', |
143 | | - [ClickstreamAnalytics.Attr.SCREEN_UNIQUE_ID]: '123adf', |
| 142 | + [Attr.SCREEN_NAME]: 'HomeComponent', |
| 143 | + [Attr.SCREEN_UNIQUE_ID]: '123adf', |
144 | 144 | }, |
145 | 145 | }) |
146 | 146 | ); |
@@ -207,6 +207,35 @@ describe('ClickstreamAnalytics test', () => { |
207 | 207 | ); |
208 | 208 | }); |
209 | 209 |
|
| 210 | + test('test set traffic source in global attributes', () => { |
| 211 | + ClickstreamAnalytics.setGlobalAttributes({ |
| 212 | + [Attr.TRAFFIC_SOURCE_SOURCE]: 'amazon', |
| 213 | + [Attr.TRAFFIC_SOURCE_MEDIUM]: 'cpc', |
| 214 | + [Attr.TRAFFIC_SOURCE_CAMPAIGN]: 'summer_promotion', |
| 215 | + [Attr.TRAFFIC_SOURCE_CAMPAIGN_ID]: 'summer_promotion_01', |
| 216 | + [Attr.TRAFFIC_SOURCE_TERM]: 'running_shoes', |
| 217 | + [Attr.TRAFFIC_SOURCE_CONTENT]: 'banner_ad_1', |
| 218 | + [Attr.TRAFFIC_SOURCE_CLID]: 'amazon_ad_123', |
| 219 | + [Attr.TRAFFIC_SOURCE_CLID_PLATFORM]: 'amazon_ads', |
| 220 | + [Attr.APP_INSTALL_CHANNEL]: 'amazon_store', |
| 221 | + }); |
| 222 | + expect( |
| 223 | + NativeModules.ClickstreamReactNative.setGlobalAttributes |
| 224 | + ).toHaveBeenCalledWith( |
| 225 | + expect.objectContaining({ |
| 226 | + [Attr.TRAFFIC_SOURCE_SOURCE]: 'amazon', |
| 227 | + [Attr.TRAFFIC_SOURCE_MEDIUM]: 'cpc', |
| 228 | + [Attr.TRAFFIC_SOURCE_CAMPAIGN]: 'summer_promotion', |
| 229 | + [Attr.TRAFFIC_SOURCE_CAMPAIGN_ID]: 'summer_promotion_01', |
| 230 | + [Attr.TRAFFIC_SOURCE_TERM]: 'running_shoes', |
| 231 | + [Attr.TRAFFIC_SOURCE_CONTENT]: 'banner_ad_1', |
| 232 | + [Attr.TRAFFIC_SOURCE_CLID]: 'amazon_ad_123', |
| 233 | + [Attr.TRAFFIC_SOURCE_CLID_PLATFORM]: 'amazon_ads', |
| 234 | + [Attr.APP_INSTALL_CHANNEL]: 'amazon_store', |
| 235 | + }) |
| 236 | + ); |
| 237 | + }); |
| 238 | + |
210 | 239 | test('test set empty global attribute', () => { |
211 | 240 | ClickstreamAnalytics.setGlobalAttributes({}); |
212 | 241 | expect( |
|
0 commit comments