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
9 changes: 6 additions & 3 deletions e2e/pages/firmware-wizard/firmware-selection.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ import fs from "fs/promises";
import path from "path";
import { test, expect, waitFor } from "../pageTest";

test.beforeEach(async ({ queries }) => {
test.beforeEach(async ({ queries, page }) => {
await (
await queries.findByText("Radio firmware", undefined, { timeout: 10000 })
).click();
await page.click('.ant-tabs-tab:has-text("GitHub")');
});

test("Latest firmware is pre selected by default", async ({
Expand Down Expand Up @@ -181,9 +182,11 @@ test("Copy URL button copies a link to the selected firmware", async ({

if (isElectron) {
expect(copiedUrl).toBe(
"buddy.edgetx.org/#/flash?version=v2.10.6&target=x10"
"buddy.edgetx.org/#/flash?source=releases&version=v2.10.6&target=x10"
);
} else {
expect(copiedUrl).toBe("localhost:8081/#/flash?version=v2.10.6&target=x10");
expect(copiedUrl).toBe(
"localhost:8081/#/flash?source=releases&version=v2.10.6&target=x10"
);
}
});
3 changes: 2 additions & 1 deletion e2e/pages/firmware-wizard/flash-firmware.spec.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { test, expect } from "../pageTest";

test.beforeEach(async ({ queries }) => {
test.beforeEach(async ({ queries, page }) => {
await (
await queries.findByText("Radio firmware", undefined, { timeout: 10000 })
).click();
await page.click('.ant-tabs-tab:has-text("GitHub")');
});

test.describe.parallel("Flashing", () => {
Expand Down
1 change: 0 additions & 1 deletion locales/be/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Built",
"Cancel": "Адмяніць",
"Click here to select firmware file, or drag it here to upload.": "Націсніце тут, каб абраць файл прашыўкі, або перацягнiце яго сюды , каб загрузіць.",
"Cloud": "Воблака",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Падлучыць",
"Connect radio": "Падлучыць радыё",
Expand Down
1 change: 0 additions & 1 deletion locales/cs/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Sestaveno",
"Cancel": "Zrušit",
"Click here to select firmware file, or drag it here to upload.": "Vyberte firmware nebo ho sem přetáhňete",
"Cloud": "Cloud",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Připojit",
"Connect radio": "Připojit rádio",
Expand Down
1 change: 0 additions & 1 deletion locales/da/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Bygget",
"Cancel": "Afbryd",
"Click here to select firmware file, or drag it here to upload.": "Klik her for at vælge firmware fil, eller træk hertil for at hente fil.",
"Cloud": "Sky/Cloud",
"Cloudbuild download": "Hent byg i Cloud",
"Connect": "Forbind",
"Connect radio": "Forbind radio",
Expand Down
1 change: 0 additions & 1 deletion locales/de/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Gebaut",
"Cancel": "Abbrechen",
"Click here to select firmware file, or drag it here to upload.": "Klicken Sie hier, um die Firmware-Datei auszuwählen, oder ziehen Sie sie zum Hochladen hierher.",
"Cloud": "Cloud",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Anschließen",
"Connect radio": "Sender anschließen",
Expand Down
1 change: 0 additions & 1 deletion locales/es/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Built",
"Cancel": "Cancel",
"Click here to select firmware file, or drag it here to upload.": "Click here to select firmware file, or drag it here to upload.",
"Cloud": "Cloud",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Connect",
"Connect radio": "Connect radio",
Expand Down
1 change: 0 additions & 1 deletion locales/fr/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Built",
"Cancel": "Cancel",
"Click here to select firmware file, or drag it here to upload.": "Click here to select firmware file, or drag it here to upload.",
"Cloud": "Cloud",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Connect",
"Connect radio": "Connect radio",
Expand Down
1 change: 0 additions & 1 deletion locales/it/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Compilato",
"Cancel": "Cancella",
"Click here to select firmware file, or drag it here to upload.": "Clicca qui per selezionare il file del firmware, o trascinalo qui per caricarlo.",
"Cloud": "Cloud",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Connetti",
"Connect radio": "Connetti la radio",
Expand Down
1 change: 0 additions & 1 deletion locales/ru/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Built",
"Cancel": "Отменить",
"Click here to select firmware file, or drag it here to upload.": "Нажмите здесь, чтобы выбрать файл прошивки, или перетащите его сюда, чтобы загрузить.",
"Cloud": "Облако",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Подключить",
"Connect radio": "Подключить радио",
Expand Down
1 change: 0 additions & 1 deletion locales/sv/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Byggt",
"Cancel": "Avbryt",
"Click here to select firmware file, or drag it here to upload.": "Klicka här för att välja firmwarefil, eller dra filen hit för att ladda upp den.",
"Cloud": "Moln/Cloud",
"Cloudbuild download": "Ladda ner molnbygge/cloudbuild",
"Connect": "Anslut",
"Connect radio": "Anslut radio",
Expand Down
1 change: 0 additions & 1 deletion locales/uk/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "Зібрано",
"Cancel": "Скасувати",
"Click here to select firmware file, or drag it here to upload.": "Клацніть тут для вибору файлу прошивки, або перетягніть його в це поле.",
"Cloud": "Хмара",
"Cloudbuild download": "Cloudbuild download",
"Connect": "Під'єднання",
"Connect radio": "Під'єднання до радіо",
Expand Down
1 change: 0 additions & 1 deletion locales/zh/flashing.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"Built": "编译好了",
"Cancel": "取消",
"Click here to select firmware file, or drag it here to upload.": "单击此处选择固件文件,或将其拖动到这里来上传。",
"Cloud": "云端",
"Cloudbuild download": "云编译下载",
"Connect": "连接",
"Connect radio": "连接遥控器",
Expand Down
2 changes: 1 addition & 1 deletion src/renderer/components/firmware/CopyUrlButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const CopyUrlButton: React.FC<Props> = ({ version, target }) => {
environment.isElectron
? "buddy.edgetx.org"
: window.location.host
}/#${location.pathname}?version=${version}${
}/#${location.pathname}?source=releases&version=${version}${
target ? `&target=${target}` : ""
}`
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ describe("CopyUrlButton", () => {
fireEvent.click(screen.getByText("Copy URL"));

expect(copyMock).toHaveBeenCalledWith(
"localhost:3000/#/current-page?version=v2.7.0&target=nv14"
"localhost:3000/#/current-page?source=releases&version=v2.7.0&target=nv14"
);
});

Expand All @@ -37,7 +37,7 @@ describe("CopyUrlButton", () => {
fireEvent.click(screen.getByText("Copy URL"));

expect(copyMock).toHaveBeenCalledWith(
"localhost:3000/#/current-page?version=v2.7.0"
"localhost:3000/#/current-page?source=releases&version=v2.7.0"
);
});

Expand Down
34 changes: 17 additions & 17 deletions src/renderer/pages/flash/__tests__/FlashingWizard.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,15 @@ describe("pages/FlashingWizard", () => {
expect(stepIndicator).toHaveTextContent("Select a firmware");
});

describe("Cloud firmware", () => {
it("should default to the CloudBuild tab", () => {
renderPage();

expect(screen.getByRole("tab", { selected: true })).toHaveTextContent(
"CloudBuild"
);
});

describe("GitHub firmware", () => {
const releases = exampleReleasesList.filter(
(release) => !release.isPrerelease
)!;
Expand All @@ -50,28 +58,20 @@ describe("pages/FlashingWizard", () => {
(release) => release.isPrerelease
)!;

it("should be the default selected tab", () => {
renderPage();

expect(screen.getByRole("tab", { selected: true })).toHaveTextContent(
"Cloud"
);
});

it("should auto select the latest available firmware", async () => {
renderPage();
renderPage("/?source=releases");

expect(
await screen.findByText(latestReleaseVersion.name)
).toBeVisible();
fireEvent.click(screen.getByText("Copy URL"));
expect(copyMock).toHaveBeenCalledWith(
`localhost:3000/#/?version=${latestReleaseVersion.id}`
`localhost:3000/#/?source=releases&version=${latestReleaseVersion.id}`
);
});

it("should render all releases and targets, and allow release and target to be selected", async () => {
renderPage();
renderPage("/?source=releases");

const versionDropdown = screen.getByLabelText("Firmware version");
await waitFor(() => expect(versionDropdown).toBeEnabled());
Expand Down Expand Up @@ -128,12 +128,12 @@ describe("pages/FlashingWizard", () => {

fireEvent.click(screen.getByText("Copy URL"));
expect(copyMock).toHaveBeenCalledWith(
`localhost:3000/#/?version=${latestReleaseVersion.id}&target=${target.code}`
`localhost:3000/#/?source=releases&version=${latestReleaseVersion.id}&target=${target.code}`
);
});

it("should allow prerelease to be selected if filter is enabled", async () => {
renderPage();
renderPage("/?source=releases");

const filtersDropdown = screen.getByText("Filters");

Expand Down Expand Up @@ -166,15 +166,15 @@ describe("pages/FlashingWizard", () => {

fireEvent.click(screen.getByText("Copy URL"));
expect(copyMock).toHaveBeenCalledWith(
`localhost:3000/#/?version=${preRelease.id}`
`localhost:3000/#/?source=releases&version=${preRelease.id}`
);
});

it("should pre select the version and target based off the URL and allow user to move to next page", async () => {
const target = exampleTargetsList[3]!;

renderPage(
`/?version=${latestReleaseVersion.id}&target=${target.code}`
`/?version=${latestReleaseVersion.id}&target=${target.code}&source=releases`
);

expect(
Expand All @@ -197,7 +197,7 @@ describe("pages/FlashingWizard", () => {

it("should pre select the pre release version based off the URL", async () => {
const release = preReleases[2]!;
renderPage(`/?version=${release.id}`);
renderPage(`/?version=${release.id}&source=releases`);

expect(
await screen.findByText(release.name, {
Expand Down
42 changes: 21 additions & 21 deletions src/renderer/pages/flash/steps/FirmwareSelectionStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ const FirmwareStep: StepComponent = ({ onNext }) => {
!!target &&
(selectedFlags?.every((flag) => flag.name && flag.value) ?? true);

const [activeTab, setActiveTab] = useState<string>(source ?? "releases");
const [activeTab, setActiveTab] = useState<string>(source ?? "cloudbuild");

useEffect(() => {
if (version === "local" && activeTab !== "file") {
Expand Down Expand Up @@ -127,27 +127,29 @@ const FirmwareStep: StepComponent = ({ onNext }) => {
tab={
<span>
<RocketOutlined />
{t(`Cloud`)}
CloudBuild
</span>
}
key="releases"
key="cloudbuild"
style={{ overflowY: "auto" }}
>
<FirmwareReleasesPicker
<CloudFirmwareReleasesPicker
filters={filters}
version={version}
target={target}
filters={filters}
selectedFlags={selectedFlags}
onChanged={(params) => {
if (activeTab === "releases") {
if (activeTab === "cloudbuild") {
updateParams({
...params,
source: activeTab,
source: "cloudbuild",
version: params.version,
target: params.target,
selectedFlags: encodeFlags(params.selectedFlags),
filters: encodeFilters(params.filters),
});
}
}}
/>
<Divider />
<CopyUrlButton target={target} version={version} />
</Tabs.TabPane>
,
<Tabs.TabPane
Expand Down Expand Up @@ -186,29 +188,27 @@ const FirmwareStep: StepComponent = ({ onNext }) => {
tab={
<span>
<RocketOutlined />
CloudBuild
GitHub
</span>
}
key="cloudbuild"
style={{ overflowY: "auto" }}
key="releases"
>
<CloudFirmwareReleasesPicker
filters={filters}
<FirmwareReleasesPicker
version={version}
target={target}
selectedFlags={selectedFlags}
filters={filters}
onChanged={(params) => {
if (activeTab === "cloudbuild") {
if (activeTab === "releases") {
updateParams({
source: "cloudbuild",
version: params.version,
target: params.target,
selectedFlags: encodeFlags(params.selectedFlags),
...params,
source: activeTab,
filters: encodeFilters(params.filters),
});
}
}}
/>
<Divider />
<CopyUrlButton target={target} version={version} />
</Tabs.TabPane>
</Tabs>
<Divider className="divider" type="vertical" />
Expand Down
Loading