javascript - Hur matchar man delvis en sträng i en array av objekt i Jest?
Jag använder följande:
- Node.js: 9.8.0
- Jest: 22.4.2
Det finns en array som följande som returneras från myFunction:
[
...
{
id: 00000000,
path: "www.someUrl.com/some/path/to"
}
...
]
Och jag vill matcha det mot följande typ av array:
const output = [
...
{
id: 00000000,
path: "path/some/path/to"
}
...
]
I korthet: Jag vill matcha id helt, men bara delvis matcha sökvägen.
Men jag vet bara inte hur... Jag har försökt följande:
expect(myFunction()).toEqual(expect.arrayContaining(output));
Men det ger mig ett fel.
Svar #1
Jag har löst det med följande kod:
const output = JSON.parse(readFileSync('./myFunction.json', 'utf8'));
describe('Testing myFunction.', () => {
test('Deafult test.', () => {
const input = myFunction();
input.map((value, index) => {
const { imageURL, ...remaining } = output[index];
expect(value).toMatchObject({
...remaining,
imageURL: expect.stringContaining(imageURL)
});
});
});
});
