Skip to content

Commit 31fa637

Browse files
authored
feat(cts): add tests for personalization (#68)
1 parent 8362612 commit 31fa637

9 files changed

+147
-1
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[
2+
{
3+
"method": "deleteUserProfile",
4+
"testName": "delete deleteUserProfile",
5+
"parameters": {
6+
"userToken": "UserToken"
7+
},
8+
"request": {
9+
"path": "/1/profiles/UserToken",
10+
"method": "DELETE"
11+
}
12+
}
13+
]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[
2+
{
3+
"method": "getPersonalizationStrategy",
4+
"testName": "get getPersonalizationStrategy",
5+
"parameters": {},
6+
"request": {
7+
"path": "/1/strategies/personalization",
8+
"method": "GET"
9+
}
10+
}
11+
]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[
2+
{
3+
"method": "getUserTokenProfile",
4+
"testName": "get getUserTokenProfile",
5+
"parameters": {
6+
"userToken": "UserToken"
7+
},
8+
"request": {
9+
"path": "/1/profiles/personalization/UserToken",
10+
"method": "GET"
11+
}
12+
}
13+
]
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
[
2+
{
3+
"method": "setPersonalizationStrategy",
4+
"testName": "set setPersonalizationStrategy",
5+
"parameters": {
6+
"personalizationStrategyObject": {
7+
"eventScoring": [
8+
{
9+
"score": 42,
10+
"eventName": "Algolia",
11+
"eventType": "Event"
12+
}
13+
],
14+
"facetScoring": [
15+
{
16+
"score": 42,
17+
"facetName": "Event"
18+
}
19+
],
20+
"personalizationImpact": 42
21+
}
22+
},
23+
"request": {
24+
"path": "/1/strategies/personalization",
25+
"method": "POST",
26+
"data": {
27+
"eventScoring": [
28+
{
29+
"score": 42,
30+
"eventName": "Algolia",
31+
"eventType": "Event"
32+
}
33+
],
34+
"facetScoring": [
35+
{
36+
"score": 42,
37+
"facetName": "Event"
38+
}
39+
],
40+
"personalizationImpact": 42
41+
}
42+
}
43+
}
44+
]

tests/CTS/templates/javascript.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { {{client}}, EchoRequester } from '{{{import}}}';
33
const appId = process.env.ALGOLIA_APPLICATION_ID || 'test_app_id';
44
const apiKey = process.env.ALGOLIA_SEARCH_KEY || 'test_api_key';
55

6-
const client = new {{client}}(appId, apiKey, { requester: new EchoRequester() });
6+
const client = new {{client}}(appId, apiKey, {{#hasRegionalHost}}'eu', {{/hasRegionalHost}}{ requester: new EchoRequester() });
77

88
{{#blocks}}
99
describe('{{operationId}}', () => {

tests/generateCTS.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ async function generateCode(language: Language): Promise<void> {
183183
import: packageNames[language][client],
184184
client: `${capitalize(client)}Api`,
185185
blocks: cts[client],
186+
hasRegionalHost: ['personalization', 'analytics'].includes(client),
186187
});
187188
await fsp.writeFile(
188189
`output/${language}/${client}${extensionForLanguage[language]}`,
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import {
2+
PersonalizationApi,
3+
EchoRequester,
4+
} from '@algolia/client-personalization';
5+
6+
const appId = process.env.ALGOLIA_APPLICATION_ID || 'test_app_id';
7+
const apiKey = process.env.ALGOLIA_SEARCH_KEY || 'test_api_key';
8+
9+
const client = new PersonalizationApi(appId, apiKey, 'eu', {
10+
requester: new EchoRequester(),
11+
});
12+
13+
describe('deleteUserProfile', () => {
14+
test('delete deleteUserProfile', async () => {
15+
const req = await client.deleteUserProfile({ userToken: 'UserToken' });
16+
expect(req).toMatchObject({
17+
path: '/1/profiles/UserToken',
18+
method: 'DELETE',
19+
});
20+
});
21+
});
22+
23+
describe('getPersonalizationStrategy', () => {
24+
test('get getPersonalizationStrategy', async () => {
25+
const req = await client.getPersonalizationStrategy();
26+
expect(req).toMatchObject({
27+
path: '/1/strategies/personalization',
28+
method: 'GET',
29+
});
30+
});
31+
});
32+
33+
describe('getUserTokenProfile', () => {
34+
test('get getUserTokenProfile', async () => {
35+
const req = await client.getUserTokenProfile({ userToken: 'UserToken' });
36+
expect(req).toMatchObject({
37+
path: '/1/profiles/personalization/UserToken',
38+
method: 'GET',
39+
});
40+
});
41+
});
42+
43+
describe('setPersonalizationStrategy', () => {
44+
test('set setPersonalizationStrategy', async () => {
45+
const req = await client.setPersonalizationStrategy({
46+
personalizationStrategyObject: {
47+
eventScoring: [{ score: 42, eventName: 'Algolia', eventType: 'Event' }],
48+
facetScoring: [{ score: 42, facetName: 'Event' }],
49+
personalizationImpact: 42,
50+
},
51+
});
52+
expect(req).toMatchObject({
53+
path: '/1/strategies/personalization',
54+
method: 'POST',
55+
data: {
56+
eventScoring: [{ score: 42, eventName: 'Algolia', eventType: 'Event' }],
57+
facetScoring: [{ score: 42, facetName: 'Event' }],
58+
personalizationImpact: 42,
59+
},
60+
});
61+
});
62+
});

tests/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
},
1010
"dependencies": {
1111
"@algolia/client-insights": "5.0.0",
12+
"@algolia/client-personalization": "5.0.0",
1213
"@algolia/client-search": "5.0.0",
1314
"@algolia/recommend": "5.0.0"
1415
},

yarn.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5693,6 +5693,7 @@ fsevents@^2.3.2:
56935693
resolution: "tests@workspace:tests"
56945694
dependencies:
56955695
"@algolia/client-insights": 5.0.0
5696+
"@algolia/client-personalization": 5.0.0
56965697
"@algolia/client-search": 5.0.0
56975698
"@algolia/recommend": 5.0.0
56985699
"@apidevtools/swagger-parser": 10.0.3

0 commit comments

Comments
 (0)