@truenorthit/d365-webresources-setup
Version:
Scaffolds a new WebResources project for D365.
39 lines (31 loc) • 1.27 kB
text/typescript
/// <reference types="xrm" />
import { describe, it, expect, beforeEach, vi } from 'vitest';
import ExampleWebResource from '../src/example';
describe('ExampleWebResource', () => {
let formContextMock: { ui: { setFormNotification: ReturnType<typeof vi.fn> } };
let executionContextMock: { getFormContext: ReturnType<typeof vi.fn> };
beforeEach(() => {
formContextMock = {
ui: {
setFormNotification: vi.fn(),
},
};
executionContextMock = {
getFormContext: vi.fn(() => formContextMock),
};
});
it('calls setFormNotification with the correct args on onLoad', () => {
const resource = new ExampleWebResource();
resource.onLoad(executionContextMock as unknown as Xrm.Events.EventContext);
expect(executionContextMock.getFormContext).toHaveBeenCalled();
expect(formContextMock.ui.setFormNotification).toHaveBeenCalledWith(
'This is a notification from the Example Web Resource.',
'INFO',
'exampleNotification'
);
});
it('attaches itself to window.ExampleWebResource', () => {
// Vitest runs in a jsdom-like environment by default; window should exist
expect((window as any).ExampleWebResource).toBe(ExampleWebResource);
});
});