mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
make sure to render once (#93786)
This commit is contained in:
parent
d657118aa0
commit
35d01f5a9b
2 changed files with 43 additions and 0 deletions
|
@ -143,6 +143,46 @@ describe('embeddable', () => {
|
|||
| expression`);
|
||||
});
|
||||
|
||||
it('should render once even if reload is called before embeddable is fully initialized', async () => {
|
||||
const embeddable = new Embeddable(
|
||||
{
|
||||
timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter,
|
||||
attributeService,
|
||||
expressionRenderer,
|
||||
basePath,
|
||||
indexPatternService: {} as IndexPatternsContract,
|
||||
editable: true,
|
||||
getTrigger,
|
||||
documentToExpression: () =>
|
||||
Promise.resolve({
|
||||
ast: {
|
||||
type: 'expression',
|
||||
chain: [
|
||||
{ type: 'function', function: 'my', arguments: {} },
|
||||
{ type: 'function', function: 'expression', arguments: {} },
|
||||
],
|
||||
},
|
||||
errors: undefined,
|
||||
}),
|
||||
},
|
||||
{
|
||||
timeRange: {
|
||||
from: 'now-15m',
|
||||
to: 'now',
|
||||
},
|
||||
} as LensEmbeddableInput
|
||||
);
|
||||
await embeddable.reload();
|
||||
expect(expressionRenderer).toHaveBeenCalledTimes(0);
|
||||
embeddable.render(mountpoint);
|
||||
expect(expressionRenderer).toHaveBeenCalledTimes(0);
|
||||
|
||||
// wait one tick to give embeddable time to initialize
|
||||
await new Promise((resolve) => setTimeout(resolve, 0));
|
||||
|
||||
expect(expressionRenderer).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should not render the visualization if any error arises', async () => {
|
||||
const embeddable = new Embeddable(
|
||||
{
|
||||
|
|
|
@ -374,6 +374,9 @@ export class Embeddable
|
|||
};
|
||||
|
||||
async reload() {
|
||||
if (!this.savedVis || !this.isInitialized) {
|
||||
return;
|
||||
}
|
||||
this.handleContainerStateChanged(this.input);
|
||||
if (this.domNode) {
|
||||
this.render(this.domNode);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue