chore: set browser name in userAgent heartbeat payload
This commit is contained in:
225
src/components/NavBar.test.tsx
Normal file
225
src/components/NavBar.test.tsx
Normal file
@@ -0,0 +1,225 @@
|
||||
import React from 'react';
|
||||
import { renderWithProviders } from '../utils/test-utils';
|
||||
import NavBar from './NavBar';
|
||||
|
||||
jest.mock('webextension-polyfill', () => {
|
||||
return {
|
||||
runtime: {
|
||||
getManifest: () => {
|
||||
return { version: 'test-version' };
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
describe('NavBar', () => {
|
||||
it('should render properly', () => {
|
||||
const { container } = renderWithProviders(<NavBar />);
|
||||
expect(container).toMatchInlineSnapshot(`
|
||||
<div>
|
||||
<nav
|
||||
class="navbar navbar-default"
|
||||
role="navigation"
|
||||
>
|
||||
<div
|
||||
class="container-fluid"
|
||||
>
|
||||
<div
|
||||
class="navbar-header"
|
||||
>
|
||||
<button
|
||||
class="navbar-toggle collapsed"
|
||||
data-target="#bs-example-navbar-collapse-1"
|
||||
data-toggle="collapse"
|
||||
type="button"
|
||||
>
|
||||
<span
|
||||
class="sr-only"
|
||||
>
|
||||
Toggle navigation
|
||||
</span>
|
||||
<i
|
||||
class="fa fa-fw fa-cogs"
|
||||
/>
|
||||
</button>
|
||||
<a
|
||||
class="navbar-brand"
|
||||
href="https://wakatime.com"
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
>
|
||||
WakaTime
|
||||
<img
|
||||
src="graphics/wakatime-logo-48.png"
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
class="collapse navbar-collapse"
|
||||
id="bs-example-navbar-collapse-1"
|
||||
>
|
||||
<div />
|
||||
<ul
|
||||
class="nav navbar-nav"
|
||||
>
|
||||
<div />
|
||||
<div />
|
||||
<li
|
||||
class="dropdown"
|
||||
>
|
||||
<a
|
||||
aria-expanded="false"
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
>
|
||||
<i
|
||||
class="fa fa-fw fa-info"
|
||||
/>
|
||||
About
|
||||
<span
|
||||
class="caret"
|
||||
/>
|
||||
</a>
|
||||
<ul
|
||||
class="dropdown-menu"
|
||||
role="menu"
|
||||
>
|
||||
<li>
|
||||
<a
|
||||
href="https://github.com/wakatime/chrome-wakatime/issues"
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
>
|
||||
<i
|
||||
class="fa fa-fw fa-bug"
|
||||
/>
|
||||
Report an Issue
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://github.com/wakatime/chrome-wakatime"
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
>
|
||||
<i
|
||||
class="fa fa-fw fa-github"
|
||||
/>
|
||||
View on GitHub
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
`);
|
||||
// expect(container).toMatchInlineSnapshot(`
|
||||
// <div>
|
||||
// <nav
|
||||
// class="navbar navbar-default"
|
||||
// role="navigation"
|
||||
// >
|
||||
// <div
|
||||
// class="container-fluid"
|
||||
// >
|
||||
// <div
|
||||
// class="navbar-header"
|
||||
// >
|
||||
// <button
|
||||
// class="navbar-toggle collapsed"
|
||||
// data-target="#bs-example-navbar-collapse-1"
|
||||
// data-toggle="collapse"
|
||||
// type="button"
|
||||
// >
|
||||
// <span
|
||||
// class="sr-only"
|
||||
// >
|
||||
// Toggle navigation
|
||||
// </span>
|
||||
// <i
|
||||
// class="fa fa-fw fa-cogs"
|
||||
// />
|
||||
// </button>
|
||||
// <a
|
||||
// class="navbar-brand"
|
||||
// href="https://wakatime.com"
|
||||
// rel="noreferrer"
|
||||
// target="_blank"
|
||||
// >
|
||||
// WakaTime
|
||||
// <img
|
||||
// src="graphics/wakatime-logo-48.png"
|
||||
// />
|
||||
// </a>
|
||||
// </div>
|
||||
// <div
|
||||
// class="collapse navbar-collapse"
|
||||
// id="bs-example-navbar-collapse-1"
|
||||
// >
|
||||
// <div />
|
||||
// <ul
|
||||
// class="nav navbar-nav"
|
||||
// >
|
||||
// <div />
|
||||
// <div />
|
||||
// <li
|
||||
// class="dropdown"
|
||||
// >
|
||||
// <a
|
||||
// aria-expanded="false"
|
||||
// class="dropdown-toggle"
|
||||
// data-toggle="dropdown"
|
||||
// href="#"
|
||||
// role="button"
|
||||
// >
|
||||
// <i
|
||||
// class="fa fa-fw fa-info"
|
||||
// />
|
||||
// About
|
||||
// <span
|
||||
// class="caret"
|
||||
// />
|
||||
// </a>
|
||||
// <ul
|
||||
// class="dropdown-menu"
|
||||
// role="menu"
|
||||
// >
|
||||
// <li>
|
||||
// <a
|
||||
// href="https://github.com/wakatime/chrome-wakatime/issues"
|
||||
// rel="noreferrer"
|
||||
// target="_blank"
|
||||
// >
|
||||
// <i
|
||||
// class="fa fa-fw fa-bug"
|
||||
// />
|
||||
// Report an Issue
|
||||
// </a>
|
||||
// </li>
|
||||
// <li>
|
||||
// <a
|
||||
// href="https://github.com/wakatime/chrome-wakatime"
|
||||
// rel="noreferrer"
|
||||
// target="_blank"
|
||||
// >
|
||||
// <i
|
||||
// class="fa fa-fw fa-github"
|
||||
// />
|
||||
// View on GitHub
|
||||
// </a>
|
||||
// </li>
|
||||
// </ul>
|
||||
// </li>
|
||||
// </ul>
|
||||
// </div>
|
||||
// </div>
|
||||
// </nav>
|
||||
// </div>
|
||||
// `);
|
||||
});
|
||||
});
|
||||
@@ -224,11 +224,15 @@ class WakaTimeCore {
|
||||
* @private
|
||||
*/
|
||||
preparePayload(heartbeat: SendHeartbeat, type: string): Record<string, unknown> {
|
||||
let browserName = 'chrome';
|
||||
if (navigator.userAgent.includes('Firefox')) {
|
||||
browserName = 'firefox';
|
||||
}
|
||||
const payload: Record<string, unknown> = {
|
||||
entity: heartbeat.url,
|
||||
time: moment().format('X'),
|
||||
type: type,
|
||||
user_agent: `${navigator.userAgent} browser-wakatime/${config.version}`,
|
||||
user_agent: `${navigator.userAgent} ${browserName}-wakatime/${config.version}`,
|
||||
};
|
||||
|
||||
if (heartbeat.project) {
|
||||
|
||||
@@ -39,5 +39,5 @@
|
||||
"storage",
|
||||
"idle"
|
||||
],
|
||||
"version": "2.0.1"
|
||||
"version": "3.0.0"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user