kibana/x-pack/test/functional_with_es_ssl/lib/object_remover.ts
Brandon Kobel 4584a8b570
Elastic License 2.0 (#90099)
* Updating everything except the license headers themselves

* Applying ESLint rules

* Manually replacing the stragglers
2021-02-03 18:12:39 -08:00

38 lines
967 B
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
interface ObjectToRemove {
id: string;
type: string;
plugin: string;
}
export class ObjectRemover {
private readonly supertest: any;
private objectsToRemove: ObjectToRemove[] = [];
constructor(supertest: any) {
this.supertest = supertest;
}
add(id: ObjectToRemove['id'], type: ObjectToRemove['type'], plugin: ObjectToRemove['plugin']) {
this.objectsToRemove.push({ id, type, plugin });
}
async removeAll() {
await Promise.all(
this.objectsToRemove.map(({ id, type, plugin }) => {
return this.supertest
.delete(`/api/${plugin}/${type}/${id}`)
.set('kbn-xsrf', 'foo')
.expect(204);
})
);
this.objectsToRemove = [];
}
}