Skip to content

Commit bdeb0bd

Browse files
authored
fix: TTL-888 special characters searching tech (#989)
* fix: TTL-888 special characters searching tech * test: TTL-888 added test for searching tech with special characters
1 parent 35c5075 commit bdeb0bd

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/app/modules/shared/services/technology.service.spec.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ describe('TechnologyService', () => {
99
let httpMock: HttpTestingController;
1010

1111
const technologyList: Technology = { items: [{ name: 'java' }, { name: 'javascript' }] };
12+
const technologyListWithSpecialChar: Technology = { items: [{ name: 'c#' }, { name: 'c#-2.0' }] };
1213

1314
beforeEach(() => {
1415
TestBed.configureTestingModule({
@@ -42,4 +43,18 @@ describe('TechnologyService', () => {
4243
expect(getTechnologiesRequest.request.method).toBe('GET');
4344
getTechnologiesRequest.flush(technologyList);
4445
});
46+
47+
it('technologies with special characters are read using GET from url', () => {
48+
const technologyFoundSize = technologyListWithSpecialChar.items.length;
49+
const technologyName = 'c#';
50+
service.getTechnologies(technologyName).subscribe((technologyInResponse) => {
51+
expect(technologyInResponse.items.length).toBe(technologyFoundSize);
52+
});
53+
const getTechnologiesRequest = httpMock.expectOne(
54+
`${service.baseUrl}&inname=${encodeURIComponent(technologyName)}&site=stackoverflow&key=${STACK_EXCHANGE_ID}&access_token=${STACK_EXCHANGE_ACCESS_TOKEN}`
55+
);
56+
expect(getTechnologiesRequest.request.method).toBe('GET');
57+
getTechnologiesRequest.flush(technologyListWithSpecialChar);
58+
});
59+
4560
});

src/app/modules/shared/services/technology.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export class TechnologyService {
1212
constructor(private http: HttpClient) {}
1313

1414
getTechnologies(value: string): Observable<Technology> {
15-
const url = `${this.baseUrl}&inname=${value}&site=stackoverflow&key=${STACK_EXCHANGE_ID}&access_token=${STACK_EXCHANGE_ACCESS_TOKEN}`;
15+
const url = `${this.baseUrl}&inname=${encodeURIComponent(value)}&site=stackoverflow&key=${STACK_EXCHANGE_ID}&access_token=${STACK_EXCHANGE_ACCESS_TOKEN}`;
1616
return this.http.get<Technology>(url);
1717
}
1818
}

0 commit comments

Comments
 (0)