Merge pull request #3520 from rschamp/hotfix/tutorial-names
[Develop] Use names for tutorial URL ids
This commit is contained in:
3 files changed
+32
-29
No files matched your search
@@ -126,7 +126,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 1
|
||||
urlId: 'getStarted'
|
||||
},
|
||||
|
||||
'say-it-out-loud': {
|
||||
@@ -237,7 +237,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 16
|
||||
urlId: 'animations-that-talk'
|
||||
},
|
||||
|
||||
'cartoon-network': {
|
||||
@@ -348,7 +348,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 17
|
||||
urlId: 'animate-an-adventure-game'
|
||||
},
|
||||
'animate-a-name': {
|
||||
name: (
|
||||
@@ -423,7 +423,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 2
|
||||
urlId: 'name'
|
||||
},
|
||||
'Make-Music': {
|
||||
name: (
|
||||
@@ -492,7 +492,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 3
|
||||
urlId: 'music'
|
||||
},
|
||||
'Make-A-Game': {
|
||||
name: (
|
||||
@@ -578,7 +578,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 4
|
||||
urlId: 'clicker-game'
|
||||
},
|
||||
|
||||
'Chase-Game': {
|
||||
@@ -682,7 +682,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 5
|
||||
urlId: 'chase-game'
|
||||
},
|
||||
'add-sprite': {
|
||||
name: (
|
||||
@@ -712,7 +712,7 @@ export default {
|
||||
]
|
||||
}
|
||||
],
|
||||
urlId: 6
|
||||
urlId: 'add-a-sprite'
|
||||
},
|
||||
'add-a-backdrop': {
|
||||
name: (
|
||||
@@ -732,7 +732,7 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 7
|
||||
urlId: 'add-a-backdrop'
|
||||
},
|
||||
'change-size': {
|
||||
name: (
|
||||
@@ -752,7 +752,7 @@ export default {
|
||||
'spin-video'
|
||||
]
|
||||
}],
|
||||
urlId: 8
|
||||
urlId: 'change-size'
|
||||
},
|
||||
'glide-around': {
|
||||
name: (
|
||||
@@ -772,7 +772,7 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 9
|
||||
urlId: 'glide-around'
|
||||
},
|
||||
|
||||
'record-a-sound': {
|
||||
@@ -793,7 +793,7 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 10
|
||||
urlId: 'record-a-sound'
|
||||
},
|
||||
'spin-video': {
|
||||
name: (
|
||||
@@ -813,7 +813,7 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 11
|
||||
urlId: 'make-it-spin'
|
||||
},
|
||||
'hide-and-show': {
|
||||
name: (
|
||||
@@ -833,7 +833,7 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 12
|
||||
urlId: 'hide'
|
||||
},
|
||||
|
||||
'switch-costume': {
|
||||
@@ -854,7 +854,7 @@ export default {
|
||||
'add-effects'
|
||||
]
|
||||
}],
|
||||
urlId: 13
|
||||
urlId: 'animate-a-sprite'
|
||||
},
|
||||
|
||||
'move-around-with-arrow-keys': {
|
||||
@@ -875,7 +875,7 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 14
|
||||
urlId: 'arrow-keys'
|
||||
},
|
||||
'add-effects': {
|
||||
name: (
|
||||
@@ -896,6 +896,6 @@ export default {
|
||||
'switch-costume'
|
||||
]
|
||||
}],
|
||||
urlId: 15
|
||||
urlId: 'add-effects'
|
||||
}
|
||||
};
|
||||
@@ -36,15 +36,11 @@ const getDeckIdFromUrlId = urlId => {
|
||||
*/
|
||||
const detectTutorialId = () => {
|
||||
const queryParams = queryString.parse(location.search);
|
||||
const tutorialID = Number(
|
||||
Array.isArray(queryParams.tutorial) ?
|
||||
queryParams.tutorial[0] :
|
||||
queryParams.tutorial
|
||||
);
|
||||
if (!isNaN(tutorialID)) {
|
||||
return getDeckIdFromUrlId(tutorialID);
|
||||
}
|
||||
return null;
|
||||
const tutorialID = Array.isArray(queryParams.tutorial) ?
|
||||
queryParams.tutorial[0] :
|
||||
queryParams.tutorial;
|
||||
if (typeof tutorialID === 'undefined') return null;
|
||||
return getDeckIdFromUrlId(tutorialID);
|
||||
};
|
||||
|
||||
export {
|
||||
|
||||
@@ -3,7 +3,9 @@ jest.mock('../../../src/lib/analytics.js', () => ({
|
||||
}));
|
||||
|
||||
jest.mock('../../../src/lib/libraries/decks/index.jsx', () => ({
|
||||
foo: {urlId: 1}
|
||||
noUrlId: {},
|
||||
foo: {urlId: 'one'},
|
||||
noUrlIdSandwich: {}
|
||||
}));
|
||||
|
||||
import {detectTutorialId} from '../../../src/lib/tutorial-from-url.js';
|
||||
@@ -15,7 +17,7 @@ Object.defineProperty(
|
||||
);
|
||||
|
||||
test('returns the tutorial ID if the urlId matches', () => {
|
||||
window.location.search = '?tutorial=1';
|
||||
window.location.search = '?tutorial=one';
|
||||
expect(detectTutorialId()).toBe('foo');
|
||||
});
|
||||
|
||||
@@ -29,12 +31,17 @@ test('returns null if empty template', () => {
|
||||
expect(detectTutorialId()).toBe(null);
|
||||
});
|
||||
|
||||
test('returns null if no query param', () => {
|
||||
window.location.search = '';
|
||||
expect(detectTutorialId()).toBe(null);
|
||||
});
|
||||
|
||||
test('returns null if non-numeric template', () => {
|
||||
window.location.search = '?tutorial=asdf';
|
||||
expect(detectTutorialId()).toBe(null);
|
||||
});
|
||||
|
||||
test('takes the first of multiple', () => {
|
||||
window.location.search = '?tutorial=1&tutorial=2';
|
||||
window.location.search = '?tutorial=one&tutorial=two';
|
||||
expect(detectTutorialId()).toBe('foo');
|
||||
});
|
||||
Reference in new issue
Block a user