280 lines
4.4 KiB
JavaScript
280 lines
4.4 KiB
JavaScript
|
|
import {
|
||
|
|
getKeysToMutate,
|
||
|
|
mutateResponsiveValueWithScalar,
|
||
|
|
} from './mutate-responsive-value'
|
||
|
|
|
||
|
|
test('it properly gets keys to mutate', () => {
|
||
|
|
expect({
|
||
|
|
desktop: getKeysToMutate({
|
||
|
|
changedKeys: [],
|
||
|
|
device: 'desktop',
|
||
|
|
}),
|
||
|
|
|
||
|
|
tablet: getKeysToMutate({
|
||
|
|
changedKeys: [],
|
||
|
|
device: 'tablet',
|
||
|
|
}),
|
||
|
|
|
||
|
|
mobile: getKeysToMutate({
|
||
|
|
changedKeys: [],
|
||
|
|
device: 'mobile',
|
||
|
|
}),
|
||
|
|
}).toStrictEqual({
|
||
|
|
desktop: ['desktop', 'tablet', 'mobile'],
|
||
|
|
tablet: ['tablet', 'mobile'],
|
||
|
|
mobile: ['mobile'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly gets keys to mutate desktop changed tablet', () => {
|
||
|
|
expect(
|
||
|
|
getKeysToMutate({
|
||
|
|
changedKeys: ['tablet'],
|
||
|
|
device: 'desktop',
|
||
|
|
})
|
||
|
|
).toStrictEqual(['desktop'])
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly gets keys to mutate desktop changed mobile', () => {
|
||
|
|
expect(
|
||
|
|
getKeysToMutate({
|
||
|
|
changedKeys: ['mobile'],
|
||
|
|
device: 'desktop',
|
||
|
|
})
|
||
|
|
).toStrictEqual(['desktop', 'tablet'])
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly gets keys to mutate mobile changed mobile', () => {
|
||
|
|
expect(
|
||
|
|
getKeysToMutate({
|
||
|
|
changedKeys: ['mobile'],
|
||
|
|
device: 'mobile',
|
||
|
|
})
|
||
|
|
).toStrictEqual(['mobile'])
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly gets keys to mutate tablet changed tablet', () => {
|
||
|
|
expect(
|
||
|
|
getKeysToMutate({
|
||
|
|
changedKeys: ['tablet'],
|
||
|
|
device: 'tablet',
|
||
|
|
})
|
||
|
|
).toStrictEqual(['tablet', 'mobile'])
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a desktop value', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 2,
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'desktop',
|
||
|
|
})
|
||
|
|
).toStrictEqual(1)
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a tablet value', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 2,
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'tablet',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 1,
|
||
|
|
mobile: 1,
|
||
|
|
|
||
|
|
__changed: ['tablet'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a mobile value', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 2,
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'mobile',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 1,
|
||
|
|
|
||
|
|
__changed: ['mobile'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a desktop value with changed mobile', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 5,
|
||
|
|
|
||
|
|
__changed: ['mobile'],
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'desktop',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 1,
|
||
|
|
tablet: 1,
|
||
|
|
mobile: 5,
|
||
|
|
|
||
|
|
__changed: ['mobile'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a desktop value with changed tablet', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 5,
|
||
|
|
mobile: 5,
|
||
|
|
|
||
|
|
__changed: ['tablet'],
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'desktop',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 1,
|
||
|
|
tablet: 5,
|
||
|
|
mobile: 5,
|
||
|
|
|
||
|
|
__changed: ['tablet'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a mobile value with changed tablet', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 5,
|
||
|
|
mobile: 5,
|
||
|
|
|
||
|
|
__changed: ['tablet'],
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'mobile',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 5,
|
||
|
|
mobile: 1,
|
||
|
|
|
||
|
|
__changed: ['tablet', 'mobile'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a tablet value with changed tablet', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 5,
|
||
|
|
mobile: 5,
|
||
|
|
|
||
|
|
__changed: ['tablet'],
|
||
|
|
},
|
||
|
|
|
||
|
|
device: 'tablet',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 1,
|
||
|
|
mobile: 1,
|
||
|
|
|
||
|
|
__changed: ['tablet'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a desktop value with skipped tablet', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 2,
|
||
|
|
},
|
||
|
|
|
||
|
|
devices: ['desktop', 'mobile'],
|
||
|
|
|
||
|
|
device: 'desktop',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 1,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 1,
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('it properly mutates a tablet value with skipped tablet', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 2,
|
||
|
|
},
|
||
|
|
|
||
|
|
devices: ['desktop', 'mobile'],
|
||
|
|
|
||
|
|
device: 'tablet',
|
||
|
|
})
|
||
|
|
).toStrictEqual({
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 1,
|
||
|
|
|
||
|
|
__changed: ['mobile'],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
it('it doesnt promote plain value into responsive one if not needed', () => {
|
||
|
|
expect(
|
||
|
|
mutateResponsiveValueWithScalar({
|
||
|
|
scalarValue: 1,
|
||
|
|
|
||
|
|
responsiveValue: {
|
||
|
|
desktop: 2,
|
||
|
|
tablet: 2,
|
||
|
|
mobile: 2,
|
||
|
|
},
|
||
|
|
})
|
||
|
|
).toStrictEqual(1)
|
||
|
|
})
|