Skip to content

Commit

Permalink
Merge pull request #41714 from code-dot-org/eliminate-named-level-usages
Browse files Browse the repository at this point in the history
replaced named level with progression when serializing script dsl
  • Loading branch information
davidsbailey committed Jul 26, 2021
2 parents 7830eb8 + 8a36849 commit b96eb21
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 9 deletions.
5 changes: 3 additions & 2 deletions dashboard/app/dsl/script_dsl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,8 @@ def self.serialize_level(
assessment = nil,
experiments = []
)
named_level_name = named && (level.display_name || level.name)
progression_name = progression || named_level_name
s = []
if level.key.start_with? 'blockly:'
s << "skin '#{level.skin}'" if level.try(:skin)
Expand All @@ -448,8 +450,7 @@ def self.serialize_level(
l += ', active: false' if experiments.empty? && active == false
l += ', active: true' if experiments.any? && (active == true || active.nil?)
l += ", experiments: #{experiments.to_json}" if experiments.any?
l += ", progression: '#{escape(progression)}'" if progression
l += ', named: true' if named
l += ", progression: '#{escape(progression_name)}'" if progression_name
l += ', assessment: true' if assessment
l += ', challenge: true' if challenge
s << l
Expand Down
4 changes: 2 additions & 2 deletions dashboard/config/scripts/andrea-test.script
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ level 'andrea-test3', progression: 'Vice President Question'

lesson 'Part 2', display_name: 'Part 2', has_lesson_plan: false
variants
level 'andrea_test1', named: true
level 'andrea-test2', named: true
level 'andrea_test1'
level 'andrea-test2'
endvariants

lesson 'part 3', display_name: 'part 3', has_lesson_plan: false
Expand Down
29 changes: 24 additions & 5 deletions dashboard/test/dsl/script_dsl_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -979,24 +979,43 @@ def setup
end

test 'serialize named_level' do
level = create :maze, name: 'maze 1', level_num: 'custom'
level1 = create :maze, name: 'maze 1', level_num: 'custom'
level2 = create :maze, name: 'maze 2', level_num: 'custom', display_name: 'Maze Two'
level3 = create :maze, name: 'maze 3', level_num: 'custom', display_name: 'ignored'
script = create :script
lesson_group = create :lesson_group, key: "", script: script, user_facing: false
lesson = create :lesson, name: 'Lesson 1', key: 'Lesson 1', script: script, lesson_group: lesson_group, has_lesson_plan: true
script_level = create(
create(
:script_level,
levels: [level],
levels: [level1],
named_level: true,
lesson: lesson,
script: script
)
create(
:script_level,
levels: [level2],
named_level: true,
lesson: lesson,
script: script
)
create(
:script_level,
levels: [level3],
named_level: true,
lesson: lesson,
script: script,
progression: 'Maze Three'
)

script_text = ScriptDSL.serialize_to_string(script_level.script)
script_text = ScriptDSL.serialize_to_string(script)
expected = <<~UNIT
published_state 'beta'
lesson 'Lesson 1', display_name: 'Lesson 1', has_lesson_plan: true
level 'maze 1', named: true
level 'maze 1', progression: 'maze 1'
level 'maze 2', progression: 'Maze Two'
level 'maze 3', progression: 'Maze Three'
UNIT
assert_equal expected, script_text
Expand Down

0 comments on commit b96eb21

Please sign in to comment.