mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: more any/type assertion improvements (#59229)
more any/type assertion improvements
This commit is contained in:
@@ -214,7 +214,7 @@ function SearchSection({ logsDatasourceUid, onChange, onRunQuery, query }: Searc
|
||||
datasource={ds}
|
||||
onChange={onChange}
|
||||
onRunQuery={onRunQuery}
|
||||
query={query.linkedQuery ?? ({ refId: 'linked' } as any)}
|
||||
query={query.linkedQuery ?? ({ refId: 'linked' } as LokiQuery)}
|
||||
history={[]}
|
||||
/>
|
||||
</>
|
||||
|
||||
@@ -366,7 +366,7 @@ export class TempoDatasource extends DataSourceWithBackend<TempoQuery, TempoJson
|
||||
method: 'GET',
|
||||
url: `${this.instanceSettings.url}/api/echo`,
|
||||
};
|
||||
const response = await lastValueFrom(getBackendSrv().fetch<any>(options));
|
||||
const response = await lastValueFrom(getBackendSrv().fetch(options));
|
||||
|
||||
if (response?.ok) {
|
||||
return { status: 'success', message: 'Data source is working' };
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { DataSourceInstanceSettings, PluginType } from '@grafana/data/src';
|
||||
import { DataSourceInstanceSettings, PluginMetaInfo, PluginType } from '@grafana/data';
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { TempoDatasource } from '../datasource';
|
||||
@@ -14,7 +14,10 @@ jest.mock('@grafana/runtime', () => ({
|
||||
describe('CompletionProvider', () => {
|
||||
it('suggests tags, intrinsics and scopes', async () => {
|
||||
const { provider, model } = setup('{}', 1, defaultTags);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
...CompletionProvider.scopes.map((s) => expect.objectContaining({ label: s, insertText: s })),
|
||||
...CompletionProvider.intrinsics.map((s) => expect.objectContaining({ label: s, insertText: s })),
|
||||
@@ -38,7 +41,10 @@ describe('CompletionProvider', () => {
|
||||
})
|
||||
);
|
||||
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
expect.objectContaining({ label: 'foobar', insertText: '"foobar"' }),
|
||||
]);
|
||||
@@ -59,7 +65,10 @@ describe('CompletionProvider', () => {
|
||||
})
|
||||
);
|
||||
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
expect.objectContaining({ label: 'foobar', insertText: 'foobar' }),
|
||||
]);
|
||||
@@ -67,13 +76,19 @@ describe('CompletionProvider', () => {
|
||||
|
||||
it('suggests nothing without tags', async () => {
|
||||
const { provider, model } = setup('{foo="}', 7, []);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([]);
|
||||
});
|
||||
|
||||
it('suggests tags on empty input', async () => {
|
||||
const { provider, model } = setup('', 0, defaultTags);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
...CompletionProvider.scopes.map((s) => expect.objectContaining({ label: s, insertText: `{ ${s}` })),
|
||||
...CompletionProvider.intrinsics.map((s) => expect.objectContaining({ label: s, insertText: `{ ${s}` })),
|
||||
@@ -84,7 +99,10 @@ describe('CompletionProvider', () => {
|
||||
|
||||
it('suggests operators after a space after the tag name', async () => {
|
||||
const { provider, model } = setup('{ foo }', 6, defaultTags);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual(
|
||||
CompletionProvider.operators.map((s) => expect.objectContaining({ label: s, insertText: s }))
|
||||
);
|
||||
@@ -92,7 +110,10 @@ describe('CompletionProvider', () => {
|
||||
|
||||
it('suggests tags after a scope', async () => {
|
||||
const { provider, model } = setup('{ resource. }', 11, defaultTags);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
...CompletionProvider.intrinsics.map((s) => expect.objectContaining({ label: s, insertText: s })),
|
||||
...defaultTags.map((s) => expect.objectContaining({ label: s, insertText: s })),
|
||||
@@ -101,7 +122,10 @@ describe('CompletionProvider', () => {
|
||||
|
||||
it('suggests logical operators and close bracket after the value', async () => {
|
||||
const { provider, model } = setup('{foo=300 }', 9, defaultTags);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
...CompletionProvider.logicalOps.map((s) => expect.objectContaining({ label: s, insertText: s })),
|
||||
expect.objectContaining({ label: '}', insertText: '}' }),
|
||||
@@ -122,7 +146,10 @@ describe('CompletionProvider', () => {
|
||||
]);
|
||||
})
|
||||
);
|
||||
const result = await provider.provideCompletionItems(model as any, {} as any);
|
||||
const result = await provider.provideCompletionItems(
|
||||
model as unknown as monacoTypes.editor.ITextModel,
|
||||
{} as monacoTypes.Position
|
||||
);
|
||||
expect((result! as monacoTypes.languages.CompletionList).suggestions).toEqual([
|
||||
expect.objectContaining({ label: 'foobar', insertText: 'foobar' }),
|
||||
]);
|
||||
@@ -185,7 +212,7 @@ const defaultSettings: DataSourceInstanceSettings<TempoJsonData> = {
|
||||
id: 'tempo',
|
||||
name: 'tempo',
|
||||
type: PluginType.datasource,
|
||||
info: {} as any,
|
||||
info: {} as PluginMetaInfo,
|
||||
module: '',
|
||||
baseUrl: '',
|
||||
},
|
||||
|
||||
@@ -124,7 +124,7 @@ export class CompletionProvider implements monacoTypes.languages.CompletionItemP
|
||||
return CompletionProvider.operators.map((key) => ({
|
||||
label: key,
|
||||
insertText: key,
|
||||
type: 'OPERATOR' as CompletionType,
|
||||
type: 'OPERATOR',
|
||||
}));
|
||||
case 'SPANSET_IN_VALUE':
|
||||
const tagName = this.overrideTagName(situation.tagName);
|
||||
@@ -144,7 +144,7 @@ export class CompletionProvider implements monacoTypes.languages.CompletionItemP
|
||||
return CompletionProvider.logicalOps.concat('}').map((key) => ({
|
||||
label: key,
|
||||
insertText: key,
|
||||
type: 'OPERATOR' as CompletionType,
|
||||
type: 'OPERATOR',
|
||||
}));
|
||||
default:
|
||||
throw new Error(`Unexpected situation ${situation}`);
|
||||
@@ -157,7 +157,7 @@ export class CompletionProvider implements monacoTypes.languages.CompletionItemP
|
||||
.map((key) => ({
|
||||
label: key,
|
||||
insertText: (prepend || '') + key,
|
||||
type: 'TAG_NAME' as CompletionType,
|
||||
type: 'TAG_NAME',
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ export class CompletionProvider implements monacoTypes.languages.CompletionItemP
|
||||
return CompletionProvider.intrinsics.map((key) => ({
|
||||
label: key,
|
||||
insertText: (prepend || '') + key,
|
||||
type: 'KEYWORD' as CompletionType,
|
||||
type: 'KEYWORD',
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ export class CompletionProvider implements monacoTypes.languages.CompletionItemP
|
||||
return CompletionProvider.scopes.map((key) => ({
|
||||
label: key,
|
||||
insertText: (prepend || '') + key,
|
||||
type: 'SCOPE' as CompletionType,
|
||||
type: 'SCOPE',
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user