J'ai une fonction qui crée un élément script et l'ajoute au corps. Cela ressemble un peu à cela :
const s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'https://myscript';
s.id = 'abc';
document.body.appendChild(s);
Je fais des tests en utilisant jest et j'espionne les appendChild
pour vérifier que les paramètres transmis correspondent à ce que j'attends. Ce que j'ai ressemble à ceci :
jest.spyOn(document.body, 'appendChild');
doFunction();
expect(document.body.appendChild).toBeCalledWith(
'<script id="abc" src="https://myscript" type="text/javascript" />',
);
Malgré la concordance des chaînes de caractères, l'argument qui est passé dans la commande appendChild
n'est pas une chaîne de caractères, mais un objet.
typeof document.body.appendChild.mock.child[0][0] // object
J'ai également essayé d'affirmer contre un objet ( { type: '...' }
sans succès. Quelles sont les autres options avec jest pour tester ce bout de code ?