Skip to content
Snippets Groups Projects
Commit 8bf73ed3 authored by Paul Kaplan's avatar Paul Kaplan
Browse files

Show the costume/sound number similar to Scratch 2.

Add a jest unit test for making sure the number is rendered out when
provided and not when not provided.
parent ebcd2ab2
No related branches found
No related tags found
No related merge requests found
......@@ -45,6 +45,7 @@ const Selector = props => {
id={index}
key={`asset-${index}`}
name={item.name}
number={index + 1 /* 1-indexed */}
selected={index === selectedItemIndex}
onClick={onItemClick}
onDeleteButtonClick={onDeleteClick}
......
......@@ -56,3 +56,11 @@
right: 0.125rem;
z-index: 2;
}
.number {
position: absolute;
top: 0.125rem;
left: 0.125rem;
font-size: 0.625rem;
z-index: 2;
}
......@@ -31,6 +31,9 @@ const SpriteSelectorItem = props => (
onClick={props.onDeleteButtonClick}
/>
) : null }
{typeof props.number === 'undefined' ? null : (
<div className={styles.number}>{props.number}</div>
)}
{props.costumeURL ? (
<CostumeCanvas
className={styles.spriteImage}
......@@ -69,6 +72,7 @@ SpriteSelectorItem.propTypes = {
className: PropTypes.string,
costumeURL: PropTypes.string,
name: PropTypes.string.isRequired,
number: PropTypes.number,
onClick: PropTypes.func,
onDeleteButtonClick: PropTypes.func,
onDuplicateButtonClick: PropTypes.func,
......
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`SpriteSelectorItemComponent matches snapshot when given a number to show 1`] = `
<div
className="react-contextmenu-wrapper ponies undefined"
onClick={[Function]}
onContextMenu={[Function]}
onMouseDown={[Function]}
onMouseEnter={undefined}
onMouseLeave={undefined}
onMouseOut={[Function]}
onMouseUp={[Function]}
onTouchEnd={[Function]}
onTouchStart={[Function]}
>
<div
aria-label="Close"
className=""
onClick={[Function]}
role="button"
tabIndex="0"
>
<img
className={undefined}
src="test-file-stub"
/>
</div>
<div
className={undefined}
>
5
</div>
<canvas
className={undefined}
height={32}
style={
Object {
"height": "32px",
"width": "32px",
}
}
width={32}
/>
<div
className={undefined}
>
Pony sprite
</div>
<nav
className="react-contextmenu"
onContextMenu={[Function]}
onMouseLeave={[Function]}
role="menu"
style={
Object {
"opacity": 0,
"pointerEvents": "none",
"position": "fixed",
}
}
tabIndex="-1"
>
<div
aria-disabled="false"
aria-orientation={null}
className="react-contextmenu-item"
onClick={[Function]}
onMouseLeave={[Function]}
onMouseMove={[Function]}
onTouchEnd={[Function]}
role="menuitem"
tabIndex="-1"
>
<span>
delete
</span>
</div>
</nav>
</div>
`;
exports[`SpriteSelectorItemComponent matches snapshot when selected 1`] = `
<div
className="react-contextmenu-wrapper ponies undefined"
......
......@@ -11,6 +11,7 @@ describe('SpriteSelectorItemComponent', () => {
let onClick;
let onDeleteButtonClick;
let selected;
let number;
// Wrap this in a function so it gets test specific states and can be reused.
const getComponent = function () {
......@@ -19,6 +20,7 @@ describe('SpriteSelectorItemComponent', () => {
className={className}
costumeURL={costumeURL}
name={name}
number={number}
selected={selected}
onClick={onClick}
onDeleteButtonClick={onDeleteButtonClick}
......@@ -33,6 +35,8 @@ describe('SpriteSelectorItemComponent', () => {
onClick = jest.fn();
onDeleteButtonClick = jest.fn();
selected = true;
// Reset number to undefined since it is an optional prop
number = undefined; // eslint-disable-line no-undefined
});
test('matches snapshot when selected', () => {
......@@ -40,6 +44,12 @@ describe('SpriteSelectorItemComponent', () => {
expect(component.toJSON()).toMatchSnapshot();
});
test('matches snapshot when given a number to show', () => {
number = 5;
const component = componentWithIntl(getComponent());
expect(component.toJSON()).toMatchSnapshot();
});
test('does not have a close box when not selected', () => {
selected = false;
const wrapper = shallowWithIntl(getComponent());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment