Chore: Refactor avoid calling config.bootData.settings (#109683)

replace config.bootData.settings with just config.
This commit is contained in:
Ashley Harrison
2025-08-14 17:03:55 +01:00
committed by GitHub
parent 57761c7dc4
commit 37b0a49027
12 changed files with 124 additions and 157 deletions
+2 -6
View File
@@ -1,7 +1,7 @@
import { textUtil } from '@grafana/data';
import { config } from '@grafana/runtime';
const CSP_REPORT_ONLY_ENABLED = config.bootData.settings.cspReportOnlyEnabled;
const CSP_REPORT_ONLY_ENABLED = config.cspReportOnlyEnabled;
export const defaultTrustedTypesPolicy = {
createHTML: (string: string, source: string, sink: string) => {
@@ -21,11 +21,7 @@ export const defaultTrustedTypesPolicy = {
},
};
if (
config.bootData.settings.trustedTypesDefaultPolicyEnabled &&
window.trustedTypes &&
window.trustedTypes.createPolicy
) {
if (config.trustedTypesDefaultPolicyEnabled && window.trustedTypes && window.trustedTypes.createPolicy) {
// check if browser supports Trusted Types
window.trustedTypes.createPolicy('default', defaultTrustedTypesPolicy);
}
@@ -113,7 +113,7 @@ describe('dashboardActions', () => {
});
it('returns an empty array if anonymous access is not enabled', async () => {
config.bootData.settings.anonymousEnabled = false;
config.anonymousEnabled = false;
const searchQuery = 'mySearchQuery';
const results = await getSearchResultActions(searchQuery);
expect(grafanaSearcherSpy).not.toHaveBeenCalled();
@@ -121,7 +121,7 @@ describe('dashboardActions', () => {
});
it('calls the search backend and returns an array of CommandPaletteActions if anonymous access is enabled', async () => {
config.bootData.settings.anonymousEnabled = true;
config.anonymousEnabled = true;
const searchQuery = 'mySearchQuery';
const results = await getSearchResultActions(searchQuery);
expect(grafanaSearcherSpy).toHaveBeenCalledWith({
@@ -51,7 +51,7 @@ export async function getRecentDashboardActions(): Promise<CommandPaletteAction[
export async function getSearchResultActions(searchQuery: string): Promise<CommandPaletteAction[]> {
// Empty strings should not come through to here
if (searchQuery.length === 0 || (!contextSrv.user.isSignedIn && !config.bootData.settings.anonymousEnabled)) {
if (searchQuery.length === 0 || (!contextSrv.user.isSignedIn && !config.anonymousEnabled)) {
return [];
}
@@ -73,18 +73,12 @@ jest.mock('@grafana/runtime', () => ({
},
config: {
...jest.requireActual('@grafana/runtime').config,
bootData: {
...jest.requireActual('@grafana/runtime').config.bootData,
settings: {
...jest.requireActual('@grafana/runtime').config.bootData.settings,
defaultDatasource: 'ds1',
datasources: {
ds1: {
name: 'ds-uid',
meta: {
id: 'grafana',
},
},
defaultDatasource: 'ds1',
datasources: {
ds1: {
name: 'ds-uid',
meta: {
id: 'grafana',
},
},
},
@@ -38,39 +38,32 @@ jest.mock('@grafana/runtime', () => {
dashboardNewLayouts: false, // Default value
reloadDashboardsOnParamsChange: false, // Default value
},
bootData: {
...original.config.bootData,
settings: {
...original.config.bootData.settings,
datasources: {
'gdev-testdata': {
id: 7,
uid: 'abc',
type: 'grafana-testdata-datasource',
name: 'gdev-testdata',
meta: {
id: 'grafana-testdata-datasource',
type: 'datasource',
name: 'TestData',
aliasIDs: ['testdata'],
},
},
'-- Grafana --': {
id: -1,
uid: 'grafana',
type: 'datasource',
name: '-- Grafana --',
meta: {
id: 'grafana',
type: 'datasource',
name: '-- Grafana --',
},
},
datasources: {
'gdev-testdata': {
id: 7,
uid: 'abc',
type: 'grafana-testdata-datasource',
name: 'gdev-testdata',
meta: {
id: 'grafana-testdata-datasource',
type: 'datasource',
name: 'TestData',
aliasIDs: ['testdata'],
},
},
'-- Grafana --': {
id: -1,
uid: 'grafana',
type: 'datasource',
name: '-- Grafana --',
meta: {
id: 'grafana',
type: 'datasource',
name: '-- Grafana --',
},
defaultDatasource: 'gdev-testdata',
},
},
defaultDatasource: 'gdev-testdata',
},
};
});
@@ -46,22 +46,20 @@ jest.mock('@grafana/runtime', () => ({
user: {
timezone: 'UTC',
},
settings: {
defaultDatasource: '-- Grafana --',
datasources: {
'-- Grafana --': {
name: 'Grafana',
meta: { id: 'grafana' },
type: 'datasource',
uid: 'grafana',
},
prometheus: {
name: 'prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
uid: 'prometheus-uid',
},
},
},
defaultDatasource: '-- Grafana --',
datasources: {
'-- Grafana --': {
name: 'Grafana',
meta: { id: 'grafana' },
type: 'datasource',
uid: 'grafana',
},
prometheus: {
name: 'prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
uid: 'prometheus-uid',
},
},
},
@@ -9,35 +9,31 @@ jest.mock('@grafana/runtime', () => ({
...jest.requireActual('@grafana/runtime'),
config: {
...jest.requireActual('@grafana/runtime').config,
bootData: {
settings: {
defaultDatasource: 'default-ds-prometheus',
datasources: {
'default-ds-prometheus': {
uid: 'default-prometheus-uid',
name: 'Default Prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
},
prometheus: {
uid: 'prometheus-uid',
name: 'Prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
},
loki: {
uid: 'loki-uid',
name: 'Loki',
meta: { id: 'loki' },
type: 'datasource',
},
'-- Grafana --': {
uid: 'grafana',
name: 'Grafana',
meta: { id: 'grafana' },
type: 'datasource',
},
},
defaultDatasource: 'default-ds-prometheus',
datasources: {
'default-ds-prometheus': {
uid: 'default-prometheus-uid',
name: 'Default Prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
},
prometheus: {
uid: 'prometheus-uid',
name: 'Prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
},
loki: {
uid: 'loki-uid',
name: 'Loki',
meta: { id: 'loki' },
type: 'datasource',
},
'-- Grafana --': {
uid: 'grafana',
name: 'Grafana',
meta: { id: 'grafana' },
type: 'datasource',
},
},
featureToggles: {
@@ -234,8 +234,8 @@ export function getDataSourceForQuery(querySpecDS: DataSourceRef | undefined | n
}
// Otherwise try to infer datasource based on query kind (kind = ds type)
const defaultDatasource = config.bootData.settings.defaultDatasource;
const dsList = config.bootData.settings.datasources;
const defaultDatasource = config.defaultDatasource;
const dsList = config.datasources;
// First check if the default datasource matches the query type
if (dsList && dsList[defaultDatasource] && dsList[defaultDatasource].meta.id === queryKind) {
@@ -108,33 +108,29 @@ jest.mock('@grafana/runtime', () => ({
...jest.requireActual('@grafana/runtime'),
config: {
...jest.requireActual('@grafana/runtime').config,
bootData: {
settings: {
defaultDatasource: 'loki',
datasources: {
Prometheus: {
name: 'Prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
},
'-- Grafana --': {
name: 'Grafana',
meta: { id: 'grafana' },
type: 'datasource',
},
loki: {
name: 'Loki',
meta: {
id: 'loki',
name: 'Loki',
type: 'datasource',
info: { version: '1.0.0' },
module: 'app/plugins/datasource/loki/module',
baseUrl: '/plugins/loki',
},
type: 'datasource',
},
defaultDatasource: 'loki',
datasources: {
Prometheus: {
name: 'Prometheus',
meta: { id: 'prometheus' },
type: 'datasource',
},
'-- Grafana --': {
name: 'Grafana',
meta: { id: 'grafana' },
type: 'datasource',
},
loki: {
name: 'Loki',
meta: {
id: 'loki',
name: 'Loki',
type: 'datasource',
info: { version: '1.0.0' },
module: 'app/plugins/datasource/loki/module',
baseUrl: '/plugins/loki',
},
type: 'datasource',
},
},
},
@@ -478,10 +478,10 @@ export function getAnnotationQueryKind(annotationQuery: AnnotationQuery): string
export function getDefaultDataSourceRef(): DataSourceRef {
// we need to return the default datasource configured in the BootConfig
const defaultDatasource = config.bootData.settings.defaultDatasource;
const defaultDatasource = config.defaultDatasource;
// get default datasource type
const dsList = config.bootData.settings.datasources;
const dsList = config.datasources;
const ds = dsList[defaultDatasource];
return { type: ds.meta.id, uid: ds.name }; // in the datasource list from bootData "id" is the type
@@ -39,39 +39,33 @@ jest.mock('@grafana/runtime', () => ({
...jest.requireActual('@grafana/runtime'),
config: {
...jest.requireActual('@grafana/runtime').config,
bootData: {
...jest.requireActual('@grafana/runtime').config.bootData,
settings: {
...jest.requireActual('@grafana/runtime').config.bootData.settings,
datasources: {
PromTest: {
uid: 'xyz-abc',
name: 'PromTest',
id: 'prometheus',
meta: {
id: 'prometheus',
name: 'PromTest',
type: 'datasource',
},
isDefault: true,
apiVersion: 'v2',
},
'-- Grafana --': {
uid: 'grafana',
name: '-- Grafana --',
id: 'grafana',
meta: {
id: 'grafana',
name: '-- Grafana --',
type: 'datasource',
},
isDefault: false,
},
datasources: {
PromTest: {
uid: 'xyz-abc',
name: 'PromTest',
id: 'prometheus',
meta: {
id: 'prometheus',
name: 'PromTest',
type: 'datasource',
},
defaultDatasource: 'PromTest',
isDefault: true,
apiVersion: 'v2',
},
'-- Grafana --': {
uid: 'grafana',
name: '-- Grafana --',
id: 'grafana',
meta: {
id: 'grafana',
name: '-- Grafana --',
type: 'datasource',
},
isDefault: false,
},
},
defaultDatasource: 'PromTest',
},
}));
@@ -440,7 +440,7 @@ export function getDefaultDatasource(): DataSourceRef {
if (configDefaultDS.uid && !configDefaultDS.apiVersion) {
// get api version from config
const dsInstance = config.bootData.settings.datasources[configDefaultDS.uid];
const dsInstance = config.datasources[configDefaultDS.uid];
configDefaultDS.apiVersion = dsInstance.apiVersion ?? undefined;
}