Skip to content

Commit 3caee3d

Browse files
authored
Fix javascript upload support (#520)
## Status closes RaspberryPiFoundation/digital-editor-issues#475 also needed to fix RaspberryPiFoundation/digital-editor-issues#469 ## What's changed? - Added support for Javascript project files in when uploaded from Github ## Steps to perform after deploying to production - Give the failing projects a rebuild
1 parent c176c4e commit 3caee3d

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed

app/jobs/upload_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def categorize_files(files, project_dir, locale, repository, owner)
134134
mime_type = file_mime_type(file)
135135

136136
case mime_type
137-
when /text/
137+
when %r{text|application/javascript}
138138
categories[:components] << component(file)
139139
when /image/
140140
categories[:images] << media(file, project_dir, locale, repository, owner)

app/models/filesystem_project.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def self.categorize_files(files, dir)
3636
mime_type = file_mime_type(file)
3737

3838
case mime_type
39-
when /text/
39+
when %r{text|application/javascript}
4040
categories[:components] << component(file, dir)
4141
when /image/
4242
categories[:images] << media(file, dir)

spec/jobs/upload_job_spec.rb

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,33 @@
6969
isBinary: false
7070
}
7171
},
72+
{
73+
name: 'index.html',
74+
extension: '.html',
75+
object: {
76+
__typename: 'Blob',
77+
text: '<h1>Hello world!</h1>',
78+
isBinary: false
79+
}
80+
},
81+
{
82+
name: 'styles.css',
83+
extension: '.css',
84+
object: {
85+
__typename: 'Blob',
86+
text: ".h1 {\n color: red;\n}\n",
87+
isBinary: false
88+
}
89+
},
90+
{
91+
name: 'script.js',
92+
extension: '.js',
93+
object: {
94+
__typename: 'Blob',
95+
text: "console.log('Hello, world!')",
96+
isBinary: false
97+
}
98+
},
7299
{
73100
name: 'project_config.yml',
74101
extension: '.yml',
@@ -100,6 +127,24 @@
100127
extension: 'py',
101128
content: "#!/bin/python3\n\nfrom p5 import *\nfrom random import randint, seed\n\n# Include global variables here\n\n\ndef setup():\n# Put code to run once here\n\n\ndef draw():\n# Put code to run every frame here\n\n \n# Keep this to run your code\nrun()\n",
102129
default: true
130+
},
131+
{
132+
name: 'index',
133+
extension: 'html',
134+
content: '<h1>Hello world!</h1>',
135+
default: false
136+
},
137+
{
138+
name: 'styles',
139+
extension: 'css',
140+
content: ".h1 {\n color: red;\n}\n",
141+
default: false
142+
},
143+
{
144+
name: 'script',
145+
extension: 'js',
146+
content: "console.log('Hello, world!')",
147+
default: false
103148
}
104149
],
105150
images: [

0 commit comments

Comments
 (0)