@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
305 lines (264 loc) • 7.75 kB
JavaScript
// @ts-nocheck
import utils from "../utils";
describe("generateFontConfiguration", () => {
it("should generate default configuration for tvos", () => {
const expected = [
{
initial_value: 20,
label: "tvOS font Size",
key: "tvos_font_size",
type: "number_input",
},
{
initial_value: 40,
label: "tvOS line Height",
key: "tvos_line_height",
type: "number_input",
},
{
initial_value: 0.4,
label: "tvOS letter Spacing",
key: "tvos_letter_spacing",
type: "number_input",
},
];
const platforms = {
tvos: "tvOS",
};
const generatedFontConfiguration =
utils.generateFontConfiguration(platforms);
expect(generatedFontConfiguration).toEqual(expected);
});
it("should generate default configuration for android_tv", () => {
const expected = [
{
initial_value: 20,
label: "Android TV font Size",
key: "android_tv_font_size",
type: "number_input",
},
{
initial_value: 40,
label: "Android TV line Height",
key: "android_tv_line_height",
type: "number_input",
},
{
initial_value: 0.4,
label: "Android TV letter Spacing",
key: "android_tv_letter_spacing",
type: "number_input",
},
];
const platforms = {
android_tv: "Android TV",
};
const generatedFontConfiguration =
utils.generateFontConfiguration(platforms);
expect(generatedFontConfiguration).toEqual(expected);
});
it("should generate default configuration for lg_tv", () => {
const expected = [
{
initial_value: 20,
label: "LG TV font Size",
key: "lg_tv_font_size",
type: "number_input",
},
{
initial_value: 40,
label: "LG TV line Height",
key: "lg_tv_line_height",
type: "number_input",
},
{
initial_value: 0.4,
label: "LG TV letter Spacing",
key: "lg_tv_letter_spacing",
type: "number_input",
},
];
const platforms = {
lg_tv: "LG TV",
};
const generatedFontConfiguration =
utils.generateFontConfiguration(platforms);
expect(generatedFontConfiguration).toEqual(expected);
});
it("should generate default configuration for samsung_tv", () => {
const expected = [
{
initial_value: 20,
label: "Samsung TV font Size",
key: "samsung_tv_font_size",
type: "number_input",
},
{
initial_value: 40,
label: "Samsung TV line Height",
key: "samsung_tv_line_height",
type: "number_input",
},
{
initial_value: 0.4,
label: "Samsung TV letter Spacing",
key: "samsung_tv_letter_spacing",
type: "number_input",
},
];
const platforms = {
samsung_tv: "Samsung TV",
};
const generatedFontConfiguration =
utils.generateFontConfiguration(platforms);
expect(generatedFontConfiguration).toEqual(expected);
});
});
test("conditional_rule helper should return correct object", () => {
expect(utils.conditional_rule("a", "b")).toMatchObject({
key: "a",
condition_value: "b",
});
});
test("createConditionalConfig helper should return correct object", () => {
expect(
utils.createConditionalConfig([
["a", "b"],
["c", "d"],
])
).toEqual({
rules: "conditional",
conditional_fields: [
{
key: "a",
condition_value: "b",
},
{
key: "c",
condition_value: "d",
},
],
});
});
test("conditional_horizontal_type should contain correct parameters", () => {
expect(
utils.conditional_horizontal_type_item_fixed.conditional_fields[0]
).toMatchObject({
key: "styles/screen_picker_type",
condition_value: "horizontal",
});
});
test("conditional_vertical_type should contain correct parameters", () => {
expect(utils.conditional_vertical_type.conditional_fields[0]).toMatchObject({
key: "styles/screen_picker_type",
condition_value: "vertical",
});
});
test("conditional_horizontal_type_item_fixed should contain correct parameters", () => {
expect(
utils.conditional_horizontal_type_item_fixed.conditional_fields[0]
).toMatchObject({
key: "styles/screen_picker_type",
condition_value: "horizontal",
});
expect(
utils.conditional_horizontal_type_item_fixed.conditional_fields[1]
).toMatchObject({
key: "styles/screen_picker_item_size",
condition_value: "fixed",
});
});
test("conditional_horizontal_display_type_fixed should contain correct parameters", () => {
expect(
utils.conditional_horizontal_display_type_fixed.conditional_fields[0]
).toMatchObject({
key: "styles/screen_picker_type",
condition_value: "horizontal",
});
expect(
utils.conditional_horizontal_display_type_fixed.conditional_fields[1]
).toMatchObject({
key: "styles/screen_picker_horizontal_display_type",
condition_value: "fixed",
});
});
test("conditional_horizontal_display_type_fixed should contain correct parameters", () => {
expect(
utils.conditional_horizontal_asset_on.conditional_fields[0]
).toMatchObject({
key: "styles/screen_picker_type",
condition_value: "horizontal",
});
expect(
utils.conditional_horizontal_asset_on.conditional_fields[1]
).toMatchObject({
key: "styles/screen_picker_asset_switch",
condition_value: true,
});
});
describe("createVariationFields", () => {
const defaultInput = {
key: "somekey",
label: "default somekey label",
variants: [
{
initial_value: "a",
},
{
initial_value: "b",
label: "custom label",
},
],
};
const config = utils.createVariationFields(defaultInput);
it("should return array containing object for conditional_vertical_type", () => {
expect(config[0].rules).toBe("conditional");
expect(config[0].conditional_fields).toEqual([
{
key: "styles/screen_picker_type",
condition_value: "vertical",
},
]);
expect(config[0].type).toBe("number_input");
expect(config[0].key).toBe("screen_picker_vertical_somekey");
expect(config[0].label).toBe("default somekey label");
expect(config[0].initial_value).toBe("a");
});
it("should return array containing object for conditional_horizontal_type", () => {
expect(config[1].rules).toBe("conditional");
expect(config[1].conditional_fields).toEqual([
{
key: "styles/screen_picker_type",
condition_value: "horizontal",
},
]);
expect(config[1].type).toBe("number_input");
expect(config[1].key).toBe("screen_picker_horizontal_somekey");
expect(config[1].label).toBe("custom label");
expect(config[1].initial_value).toBe("b");
});
it("should accept custom prefix (empty)", () => {
const config = utils.createVariationFields({
...defaultInput,
prefix: "",
});
expect(config[0].key).toBe("vertical_somekey");
expect(config[1].key).toBe("horizontal_somekey");
});
it("should accept custom prefix (string)", () => {
const config = utils.createVariationFields({
...defaultInput,
prefix: "string",
});
expect(config[0].key).toBe("string_vertical_somekey");
expect(config[1].key).toBe("string_horizontal_somekey");
});
it("should accept custom type (string)", () => {
const config = utils.createVariationFields({
...defaultInput,
type: "text_input",
});
expect(config[0].type).toBe("text_input");
expect(config[1].type).toBe("text_input");
});
});