Skip to content

Commit 8286377

Browse files
authored
Wget option Added along with a new dropdown menu (#265)
* Some changes for the new wget code panel * Made some more changes and refactoring * Added text copy button * Update PaneLeft.vue * Made some changes * changed the configuration of code option and download button * Made few changes in CSS styles of NavCode.vue * Fix bug for NavDownload success message * Made final changes for the Code dropdown button * A minor change * Minor fixes * Minor change * Minor fix * Last fix * minor change in the NavCode * Last fix * UI fixes * Made all the required UI fixes for now * reconfigured tests * Made some changes * Added changes to CSS of NavCode and NavDownload for center alignmnet * Added copy notification in NavCode * Fixed issues and reformatted the NavCode tab * Fixed button styles, formatting and tests * Fix tests for failing on await * Fixed and reduced CSS for NavCode.vue
1 parent 85403b6 commit 8286377

15 files changed

+665
-191
lines changed

__tests__/text-classification.spec.js

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,15 @@ test('text classification simple', async () => {
3232
await page.click('text=Loggers')
3333
await page.click('text=config.yaml')
3434

35-
const [download] = await Promise.all([
36-
page.waitForEvent('download'),
37-
page.click('button:has-text("Download")')
38-
])
39-
40-
await download.saveAs('./dist-tests/text-classification-simple.zip')
35+
await page.getByRole('button', { name: 'Code' }).click()
36+
const downloadPromise = await page
37+
.waitForEvent('download', { timeout: 2000 })
38+
.catch(() => {
39+
page.getByRole('button', { name: 'Download Zip' }).click()
40+
return page.waitForEvent('download')
41+
})
42+
43+
await downloadPromise.saveAs('./dist-tests/text-classification-simple.zip')
4144
})
4245

4346
test('text classification all', async () => {
@@ -85,12 +88,14 @@ test('text classification all', async () => {
8588
await page.click('text=Loggers')
8689
await page.click('text=config.yaml')
8790

88-
const [download] = await Promise.all([
89-
page.waitForEvent('download'),
90-
page.click('button:has-text("Download")')
91-
])
92-
93-
await download.saveAs('./dist-tests/text-classification-all.zip')
91+
await page.getByRole('button', { name: 'Code' }).click()
92+
const downloadPromise = await page
93+
.waitForEvent('download', { timeout: 2000 })
94+
.catch(() => {
95+
page.getByRole('button', { name: 'Download Zip' }).click()
96+
return page.waitForEvent('download')
97+
})
98+
await downloadPromise.saveAs('./dist-tests/text-classification-all.zip')
9499
})
95100

96101
test('text classification launch', async () => {
@@ -107,12 +112,15 @@ test('text classification launch', async () => {
107112
await page.click('text=Loggers')
108113
await page.click('text=config.yaml')
109114

110-
const [download] = await Promise.all([
111-
page.waitForEvent('download'),
112-
page.click('button:has-text("Download")')
113-
])
114-
115-
await download.saveAs('./dist-tests/text-classification-launch.zip')
115+
await page.getByRole('button', { name: 'Code' }).click()
116+
await page.getByRole('button', { name: 'Download Zip' }).click()
117+
const downloadPromise = await page
118+
.waitForEvent('download', { timeout: 2000 })
119+
.catch(() => {
120+
page.getByRole('button', { name: 'Download Zip' }).click()
121+
return page.waitForEvent('download')
122+
})
123+
await downloadPromise.saveAs('./dist-tests/text-classification-launch.zip')
116124
})
117125

118126
test('text classification spawn', async () => {
@@ -130,10 +138,13 @@ test('text classification spawn', async () => {
130138
await page.click('text=Loggers')
131139
await page.click('text=config.yaml')
132140

133-
const [download] = await Promise.all([
134-
page.waitForEvent('download'),
135-
page.click('button:has-text("Download")')
136-
])
137-
138-
await download.saveAs('./dist-tests/text-classification-spawn.zip')
141+
await page.getByRole('button', { name: 'Code' }).click()
142+
await page.getByRole('button', { name: 'Download Zip' }).click()
143+
const downloadPromise = await page
144+
.waitForEvent('download', { timeout: 2000 })
145+
.catch(() => {
146+
page.getByRole('button', { name: 'Download Zip' }).click()
147+
return page.waitForEvent('download')
148+
})
149+
await downloadPromise.saveAs('./dist-tests/text-classification-spawn.zip')
139150
})

__tests__/vision-classification.spec.js

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,17 @@ test('vision classification simple', async () => {
3232
await page.click('text=Loggers')
3333
await page.click('text=config.yaml')
3434

35-
const [download] = await Promise.all([
36-
page.waitForEvent('download'),
37-
page.click('button:has-text("Download")')
38-
])
35+
await page.getByRole('button', { name: 'Code' }).click()
36+
await page.getByRole('button', { name: 'Download Zip' }).click()
3937

40-
await download.saveAs('./dist-tests/vision-classification-simple.zip')
38+
const downloadPromise = await page
39+
.waitForEvent('download', { timeout: 2000 })
40+
.catch(() => {
41+
page.getByRole('button', { name: 'Download Zip' }).click()
42+
return page.waitForEvent('download')
43+
})
44+
45+
await downloadPromise.saveAs('./dist-tests/vision-classification-simple.zip')
4146
})
4247

4348
test('vision classification all', async () => {
@@ -85,12 +90,15 @@ test('vision classification all', async () => {
8590
await page.click('text=Loggers')
8691
await page.click('text=config.yaml')
8792

88-
const [download] = await Promise.all([
89-
page.waitForEvent('download'),
90-
page.click('button:has-text("Download")')
91-
])
92-
93-
await download.saveAs('./dist-tests/vision-classification-all.zip')
93+
await page.getByRole('button', { name: 'Code' }).click()
94+
await page.getByRole('button', { name: 'Download Zip' }).click()
95+
const downloadPromise = await page
96+
.waitForEvent('download', { timeout: 2000 })
97+
.catch(() => {
98+
page.getByRole('button', { name: 'Download Zip' }).click()
99+
return page.waitForEvent('download')
100+
})
101+
await downloadPromise.saveAs('./dist-tests/vision-classification-all.zip')
94102
})
95103

96104
test('vision classification launch', async () => {
@@ -107,12 +115,15 @@ test('vision classification launch', async () => {
107115
await page.click('text=Loggers')
108116
await page.click('text=config.yaml')
109117

110-
const [download] = await Promise.all([
111-
page.waitForEvent('download'),
112-
page.click('button:has-text("Download")')
113-
])
114-
115-
await download.saveAs('./dist-tests/vision-classification-launch.zip')
118+
await page.getByRole('button', { name: 'Code' }).click()
119+
await page.getByRole('button', { name: 'Download Zip' }).click()
120+
const downloadPromise = await page
121+
.waitForEvent('download', { timeout: 2000 })
122+
.catch(() => {
123+
page.getByRole('button', { name: 'Download Zip' }).click()
124+
return page.waitForEvent('download')
125+
})
126+
await downloadPromise.saveAs('./dist-tests/vision-classification-launch.zip')
116127
})
117128

118129
test('vision classification spawn', async () => {
@@ -130,10 +141,13 @@ test('vision classification spawn', async () => {
130141
await page.click('text=Loggers')
131142
await page.click('text=config.yaml')
132143

133-
const [download] = await Promise.all([
134-
page.waitForEvent('download'),
135-
page.click('button:has-text("Download")')
136-
])
137-
138-
await download.saveAs('./dist-tests/vision-classification-spawn.zip')
144+
await page.getByRole('button', { name: 'Code' }).click()
145+
await page.getByRole('button', { name: 'Download Zip' }).click()
146+
const downloadPromise = await page
147+
.waitForEvent('download', { timeout: 2000 })
148+
.catch(() => {
149+
page.getByRole('button', { name: 'Download Zip' }).click()
150+
return page.waitForEvent('download')
151+
})
152+
await downloadPromise.saveAs('./dist-tests/vision-classification-spawn.zip')
139153
})

__tests__/vision-dcgan.spec.js

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,16 @@ test('vision dcgan simple', async () => {
3232
await page.click('text=Loggers')
3333
await page.click('text=config.yaml')
3434

35-
const [download] = await Promise.all([
36-
page.waitForEvent('download'),
37-
page.click('button:has-text("Download")')
38-
])
39-
40-
await download.saveAs('./dist-tests/vision-dcgan-simple.zip')
35+
await page.getByRole('button', { name: 'Code' }).click()
36+
await page.getByRole('button', { name: 'Download Zip' }).click()
37+
38+
const downloadPromise = await page
39+
.waitForEvent('download', { timeout: 2000 })
40+
.catch(() => {
41+
page.getByRole('button', { name: 'Download Zip' }).click()
42+
return page.waitForEvent('download')
43+
})
44+
await downloadPromise.saveAs('./dist-tests/vision-dcgan-simple.zip')
4145
})
4246

4347
test('vision dcgan all', async () => {
@@ -85,12 +89,17 @@ test('vision dcgan all', async () => {
8589
await page.click('text=Loggers')
8690
await page.click('text=config.yaml')
8791

88-
const [download] = await Promise.all([
89-
page.waitForEvent('download'),
90-
page.click('button:has-text("Download")')
91-
])
92+
await page.getByRole('button', { name: 'Code' }).click()
93+
await page.getByRole('button', { name: 'Download Zip' }).click()
94+
95+
const downloadPromise = await page
96+
.waitForEvent('download', { timeout: 2000 })
97+
.catch(() => {
98+
page.getByRole('button', { name: 'Download Zip' }).click()
99+
return page.waitForEvent('download')
100+
})
92101

93-
await download.saveAs('./dist-tests/vision-dcgan-all.zip')
102+
await downloadPromise.saveAs('./dist-tests/vision-dcgan-all.zip')
94103
})
95104

96105
test('vision dcgan launch', async () => {
@@ -107,12 +116,17 @@ test('vision dcgan launch', async () => {
107116
await page.click('text=Loggers')
108117
await page.click('text=config.yaml')
109118

110-
const [download] = await Promise.all([
111-
page.waitForEvent('download'),
112-
page.click('button:has-text("Download")')
113-
])
119+
await page.getByRole('button', { name: 'Code' }).click()
120+
await page.getByRole('button', { name: 'Download Zip' }).click()
121+
122+
const downloadPromise = await page
123+
.waitForEvent('download', { timeout: 2000 })
124+
.catch(() => {
125+
page.getByRole('button', { name: 'Download Zip' }).click()
126+
return page.waitForEvent('download')
127+
})
114128

115-
await download.saveAs('./dist-tests/vision-dcgan-launch.zip')
129+
await downloadPromise.saveAs('./dist-tests/vision-dcgan-launch.zip')
116130
})
117131

118132
test('vision dcgan spawn', async () => {
@@ -130,10 +144,14 @@ test('vision dcgan spawn', async () => {
130144
await page.click('text=Loggers')
131145
await page.click('text=config.yaml')
132146

133-
const [download] = await Promise.all([
134-
page.waitForEvent('download'),
135-
page.click('button:has-text("Download")')
136-
])
147+
await page.getByRole('button', { name: 'Code' }).click()
148+
await page.getByRole('button', { name: 'Download Zip' }).click()
137149

138-
await download.saveAs('./dist-tests/vision-dcgan-spawn.zip')
150+
const downloadPromise = await page
151+
.waitForEvent('download', { timeout: 2000 })
152+
.catch(() => {
153+
page.getByRole('button', { name: 'Download Zip' }).click()
154+
return page.waitForEvent('download')
155+
})
156+
await downloadPromise.saveAs('./dist-tests/vision-dcgan-spawn.zip')
139157
})

__tests__/vision-segmentation.spec.js

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,17 @@ test('vision segmentation simple', async () => {
3232
await page.click('text=Loggers')
3333
await page.click('text=config.yaml')
3434

35-
const [download] = await Promise.all([
36-
page.waitForEvent('download'),
37-
page.click('button:has-text("Download")')
38-
])
35+
await page.getByRole('button', { name: 'Code' }).click()
36+
await page.getByRole('button', { name: 'Download Zip' }).click()
3937

40-
await download.saveAs('./dist-tests/vision-segmentation-simple.zip')
38+
const downloadPromise = await page
39+
.waitForEvent('download', { timeout: 2000 })
40+
.catch(() => {
41+
page.getByRole('button', { name: 'Download Zip' }).click()
42+
return page.waitForEvent('download')
43+
})
44+
45+
await downloadPromise.saveAs('./dist-tests/vision-segmentation-simple.zip')
4146
})
4247

4348
test('vision segmentation all', async () => {
@@ -85,12 +90,17 @@ test('vision segmentation all', async () => {
8590
await page.click('text=Loggers')
8691
await page.click('text=config.yaml')
8792

88-
const [download] = await Promise.all([
89-
page.waitForEvent('download'),
90-
page.click('button:has-text("Download")')
91-
])
93+
await page.getByRole('button', { name: 'Code' }).click()
94+
await page.getByRole('button', { name: 'Download Zip' }).click()
95+
96+
const downloadPromise = await page
97+
.waitForEvent('download', { timeout: 2000 })
98+
.catch(() => {
99+
page.getByRole('button', { name: 'Download Zip' }).click()
100+
return page.waitForEvent('download')
101+
})
92102

93-
await download.saveAs('./dist-tests/vision-segmentation-all.zip')
103+
await downloadPromise.saveAs('./dist-tests/vision-segmentation-all.zip')
94104
})
95105

96106
test('vision segmentation launch', async () => {
@@ -107,12 +117,17 @@ test('vision segmentation launch', async () => {
107117
await page.click('text=Loggers')
108118
await page.click('text=config.yaml')
109119

110-
const [download] = await Promise.all([
111-
page.waitForEvent('download'),
112-
page.click('button:has-text("Download")')
113-
])
120+
await page.getByRole('button', { name: 'Code' }).click()
121+
await page.getByRole('button', { name: 'Download Zip' }).click()
114122

115-
await download.saveAs('./dist-tests/vision-segmentation-launch.zip')
123+
const downloadPromise = await page
124+
.waitForEvent('download', { timeout: 2000 })
125+
.catch(() => {
126+
page.getByRole('button', { name: 'Download Zip' }).click()
127+
return page.waitForEvent('download')
128+
})
129+
130+
await downloadPromise.saveAs('./dist-tests/vision-segmentation-launch.zip')
116131
})
117132

118133
test('vision segmentation spawn', async () => {
@@ -130,10 +145,15 @@ test('vision segmentation spawn', async () => {
130145
await page.click('text=Loggers')
131146
await page.click('text=config.yaml')
132147

133-
const [download] = await Promise.all([
134-
page.waitForEvent('download'),
135-
page.click('button:has-text("Download")')
136-
])
148+
await page.getByRole('button', { name: 'Code' }).click()
149+
await page.getByRole('button', { name: 'Download Zip' }).click()
150+
151+
const downloadPromise = await page
152+
.waitForEvent('download', { timeout: 2000 })
153+
.catch(() => {
154+
page.getByRole('button', { name: 'Download Zip' }).click()
155+
return page.waitForEvent('download')
156+
})
137157

138-
await download.saveAs('./dist-tests/vision-segmentation-spawn.zip')
158+
await downloadPromise.saveAs('./dist-tests/vision-segmentation-spawn.zip')
139159
})

functions/code.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Below imports are defined in
2+
// `external_node_modules` of [functions] in netlify.toml
3+
// They are required for this function to run
4+
5+
import { v4 as uuidv4 } from 'uuid'
6+
import JSZip from 'jszip'
7+
import { pushToGitHub } from './utils'
8+
9+
const nbUid = uuidv4()
10+
const repoOwner = process.env.VUE_APP_GH_USER
11+
const repo = process.env.VUE_APP_GH_REPO
12+
13+
// This function is the one Netlify function runs on
14+
// https://docs.netlify.com/functions/build-with-javascript/#synchronous-function-format
15+
exports.handler = async function (event, _) {
16+
// event is a JSON object
17+
const data = JSON.parse(event.body)
18+
const zip = new JSZip()
19+
const code = data.code
20+
const template = `ignite-${data.template}`
21+
22+
// As usual from Download component,
23+
// we will zip the files and
24+
// generate a base64 format for pushing to GitHub
25+
// with Octokit.
26+
for (const filename in code) {
27+
zip.file(filename, code[filename])
28+
}
29+
const content = await zip.generateAsync({ type: 'base64' })
30+
const zipRes = await pushToGitHub(
31+
content,
32+
`${template}.zip`,
33+
nbUid,
34+
repoOwner,
35+
repo
36+
)
37+
return {
38+
statusCode: 200,
39+
body: zipRes
40+
}
41+
}

0 commit comments

Comments
 (0)