I am new to write Angular
unit test case. I am injecting one service in my controller file(.ts). How Will I inject service file in spec file.
Here is the code:
app.component.ts
getSortData() {
this.sortService.sortNumberData(this.data, 'name', 'asce');
}
sort.service.ts
sortNumberData(data, rendererKey, type) {
// data.sort((elem1, elem2) => {
// //if number is undefined, then assigning `MAX_SAFE_INTEGER` to to move it to the last in order.
// if (elem1[rendererKey] == undefined) elem1[rendererKey] = Number.MAX_SAFE_INTEGER;
// if (!elem2[rendererKey] == undefined) elem2[rendererKey] = Number.MAX_SAFE_INTEGER;
// return Number(elem1[rendererKey]) - Number(elem2[rendererKey]);
// });
// if (type == desc) {
// return data.reverse();
// }
// return data;
if (!Array.isArray(rendererKey)) {
data.sort((elem1, elem2) => {
if (elem1[rendererKey] == undefined && elem2[rendererKey] == undefined) {
return 0;
} else if (elem1[rendererKey] == undefined) {
return 1;
} else if (elem2[rendererKey] == undefined) {
return -1;
} else {
return elem1[rendererKey] - elem2[rendererKey];
}
});
// if the type of rendererKey is array, then use array elements as keys hierarchally.
// This is used when compare element is not direct property of each element of data array.
} else if (Array.isArray(rendererKey)) {
data.sort((elem1, elem2) => {
let temp1 = elem1, temp2 = elem2;
rendererKey.map((e) => { temp1 = temp1[e], temp2 = temp2[e] });
console.log(temp1, temp2);
if (temp1 == undefined && temp2 == undefined) {
return Number.MAX_SAFE_INTEGER - Number.MAX_SAFE_INTEGER
} else if (temp1 == undefined) {
return Number.MAX_SAFE_INTEGER - temp2;
} else if (temp2 == undefined) {
return temp1 - Number.MAX_SAFE_INTEGER;
} else {
return temp1 - temp2;
};
})
}
if (type == desc) {
return data.reverse();
}
return data;
}
We don't know. How to inject this service in spec file. Can anyone help us?
Thanks!