Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ describe('WebstatusStatsMissingOneImplChartPanel', () => {
BrowserReleaseFeatureMetric[]
>([
['chrome', [{timestamp: '2024-01-01', count: 10}]],
['edge', [{timestamp: '2024-01-01', count: 8}]],
// TODO(#1104) - Add edge back in when allow users to dynamically select the range.
// ['edge', [{timestamp: '2024-01-01', count: 8}]],
['firefox', [{timestamp: '2024-01-01', count: 9}]],
['safari', [{timestamp: '2024-01-01', count: 7}]],
]);
Expand Down Expand Up @@ -114,8 +115,8 @@ describe('WebstatusStatsMissingOneImplChartPanel', () => {
});

const expectedMap = new Map([
['chrome', [{timestamp: '2024-01-01', count: 10}]],
['edge', [{timestamp: '2024-01-01', count: 8}]],
['chromium', [{timestamp: '2024-01-01', count: 10}]],
// ['edge', [{timestamp: '2024-01-01', count: 8}]],
['firefox', [{timestamp: '2024-01-01', count: 9}]],
['safari', [{timestamp: '2024-01-01', count: 7}]],
]);
Expand All @@ -126,7 +127,9 @@ describe('WebstatusStatsMissingOneImplChartPanel', () => {
const options = el.generateDisplayDataChartOptions();
expect(options.vAxis?.title).to.equal('Number of features missing');
// Only browsers.
expect(options.colors).eql(['#FF0000', '#F48400', '#4285F4', '#0F9D58']);
expect(options.colors).eql(['#FF0000', '#F48400', '#4285F4']);
// TODO(#1104) For now exclude edge.
// expect(options.colors).eql(['#FF0000', '#F48400', '#4285F4', '#0F9D58']);
expect(options.hAxis?.viewWindow?.min).to.deep.equal(el.startDate);
const expectedEndDate = new Date(
el.endDate.getTime() + 1000 * 60 * 60 * 24,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import {
import {
BrowserReleaseFeatureMetric,
type APIClient,
ALL_BROWSERS,
BrowsersParameter,
BROWSER_ID_TO_COLOR,
} from '../api/client.js';
Expand All @@ -33,7 +32,7 @@ import {customElement, state} from 'lit/decorators.js';
@customElement('webstatus-stats-missing-one-impl-chart-panel')
export class WebstatusStatsMissingOneImplChartPanel extends WebstatusLineChartPanel {
@state()
supportedBrowsers: BrowsersParameter[] = ALL_BROWSERS;
supportedBrowsers: BrowsersParameter[] = ['chrome', 'firefox', 'safari'];

createLoadingTask(): Task {
return new Task(this, {
Expand Down Expand Up @@ -81,22 +80,28 @@ export class WebstatusStatsMissingOneImplChartPanel extends WebstatusLineChartPa
endDate: Date,
) {
if (typeof apiClient !== 'object') return;

const browserMetricData: Array<
LineChartMetricData<BrowserReleaseFeatureMetric>
> = ALL_BROWSERS.map(browser => ({
label: browser,
LineChartMetricData<BrowserReleaseFeatureMetric> & {
browser: BrowsersParameter;
}
> = this.supportedBrowsers.map(browser => ({
label: browser === 'chrome' ? 'chromium' : browser, // Special case for Chrome
browser: browser,
data: [],
getTimestamp: (dataPoint: BrowserReleaseFeatureMetric) =>
new Date(dataPoint.timestamp),
getValue: (dataPoint: BrowserReleaseFeatureMetric) => dataPoint.count,
}));
const promises = ALL_BROWSERS.map(async browser => {
const promises = this.supportedBrowsers.map(async browser => {
const browserData = browserMetricData.find(
data => data.label === browser,
data => data.browser === browser,
);
if (!browserData) return;

const otherBrowsers = ALL_BROWSERS.filter(value => browser !== value);
const otherBrowsers = this.supportedBrowsers.filter(
value => browser !== value,
);
for await (const page of apiClient.getMissingOneImplementationCountsForBrowser(
browser,
otherBrowsers,
Expand Down Expand Up @@ -129,8 +134,10 @@ export class WebstatusStatsMissingOneImplChartPanel extends WebstatusLineChartPa
Browsers
</sl-button>
<sl-menu @sl-select=${this.handleBrowserSelection}>
<sl-menu-item type="checkbox" value="chrome">Chrome</sl-menu-item>
<sl-menu-item type="checkbox" value="edge">Edge</sl-menu-item>
<!-- The API still uses chrome as the browser. But change the text to Chromium -->
<sl-menu-item type="checkbox" value="chrome">Chromium</sl-menu-item>
<!-- For now, remove edge. Add back in once we add correct interaction in #1104-->
<!-- <sl-menu-item type="checkbox" value="edge">Edge</sl-menu-item> -->
<sl-menu-item type="checkbox" value="firefox">Firefox</sl-menu-item>
<sl-menu-item type="checkbox" value="safari">Safari</sl-menu-item>
</sl-menu>
Expand Down
Loading