| /** |
| * @license |
| * Copyright 2023 Google LLC |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| import '../../test/common-test-setup'; |
| import {assert} from '@open-wc/testing'; |
| import {getBaseUrl} from '../../utils/url-util'; |
| import { |
| createGerritInfo, |
| createServerInfo, |
| } from '../../test/test-data-generators'; |
| import {ConfigModel} from './config-model'; |
| import {testResolver} from '../../test/common-test-setup'; |
| import {getAppContext} from '../../services/app-context'; |
| import {changeModelToken} from '../change/change-model'; |
| import {ServerInfo} from '../../api/rest-api'; |
| |
| suite('getDocsBaseUrl tests', () => { |
| let model: ConfigModel; |
| |
| setup(async () => { |
| model = new ConfigModel( |
| testResolver(changeModelToken), |
| getAppContext().restApiService |
| ); |
| }); |
| |
| test('null config', async () => { |
| const probePathMock = sinon |
| .stub(model.restApiService, 'probePath') |
| .resolves(true); |
| const docsBaseUrl = await model.getDocsBaseUrl(undefined); |
| assert.equal( |
| probePathMock.lastCall.args[0], |
| `${getBaseUrl()}/Documentation/index.html` |
| ); |
| assert.equal(docsBaseUrl, `${getBaseUrl()}/Documentation`); |
| }); |
| |
| test('no doc config', async () => { |
| const probePathMock = sinon |
| .stub(model.restApiService, 'probePath') |
| .resolves(true); |
| const config: ServerInfo = { |
| ...createServerInfo(), |
| gerrit: createGerritInfo(), |
| }; |
| const docsBaseUrl = await model.getDocsBaseUrl(config); |
| assert.equal( |
| probePathMock.lastCall.args[0], |
| `${getBaseUrl()}/Documentation/index.html` |
| ); |
| assert.equal(docsBaseUrl, `${getBaseUrl()}/Documentation`); |
| }); |
| |
| test('has doc config', async () => { |
| const probePathMock = sinon |
| .stub(model.restApiService, 'probePath') |
| .resolves(true); |
| const config: ServerInfo = { |
| ...createServerInfo(), |
| gerrit: {...createGerritInfo(), doc_url: 'foobar'}, |
| }; |
| const docsBaseUrl = await model.getDocsBaseUrl(config); |
| assert.isFalse(probePathMock.called); |
| assert.equal(docsBaseUrl, 'foobar'); |
| }); |
| |
| test('no probe', async () => { |
| const probePathMock = sinon |
| .stub(model.restApiService, 'probePath') |
| .resolves(false); |
| const docsBaseUrl = await model.getDocsBaseUrl(undefined); |
| assert.equal( |
| probePathMock.lastCall.args[0], |
| `${getBaseUrl()}/Documentation/index.html` |
| ); |
| assert.equal( |
| docsBaseUrl, |
| 'https://gerrit-review.googlesource.com/Documentation' |
| ); |
| }); |
| }); |