Best JavaScript code snippet using playwright-internal
index.test.js
Source:index.test.js  
1import configureMockStore from "redux-mock-store";2import thunk from "redux-thunk";3import cloudreveApp, { initState as cloudreveState } from "./index";4import { initState as viewUpdateState } from "../redux/viewUpdate/reducer";5import { initState as explorerState } from "../redux/explorer/reducer";6import {7    setModalsLoading,8    openLoadingDialog,9    openGetSourceDialog,10    openShareDialog,11    openMoveDialog,12    navigateUp,13    navigateTo,14    drawerToggleAction,15    changeViewMethod,16    changeContextMenu,17    dragAndDrop,18    setNavigatorLoadingStatus,19    setNavigatorError,20    addSelectedTargets,21    setNavigator,22    setSelectedTarget,23    removeSelectedTargets,24    toggleDaylightMode,25    applyThemes,26    openCreateFolderDialog,27    openRenameDialog,28    openRemoveDialog,29    openResaveDialog,30    setUserPopover,31    setShareUserPopover,32    setSiteConfig,33    openMusicDialog,34    openRemoteDownloadDialog,35    openTorrentDownloadDialog,36    openDecompressDialog,37    openCompressDialog,38    openCopyDialog,39    closeAllModals,40    toggleSnackbar,41    setSessionStatus,42    enableLoadUploader,43    refreshFileList,44    searchMyFile,45    showImgPreivew,46    refreshStorage,47    saveFile,48    setLastSelect,49    setShiftSelectedIds,50} from "../actions/index";51import { changeSubTitle, setSubtitle } from "../redux/viewUpdate/action";52import {53    updateFileList,54    setFileList,55    setDirList,56    setSortMethod,57    changeSortMethod,58} from "../redux/explorer/action";59const initState = {60    ...cloudreveState,61    viewUpdate: viewUpdateState,62    explorer: explorerState,63};64const middlewares = [thunk];65const mockStore = configureMockStore(middlewares);66describe("index reducer", () => {67    it("should return the initial state", () => {68        expect(cloudreveApp(undefined, { type: "@@INIT" })).toEqual(initState);69    });70    it("should handle redux init", () => {71        expect(cloudreveApp(undefined, { type: "@@redux/INIT" })).toEqual(72            initState73        );74    });75    it("should handle DRAWER_TOGGLE", () => {76        const openAction = drawerToggleAction(true);77        expect(cloudreveApp(initState, openAction)).toEqual({78            ...initState,79            viewUpdate: {80                ...initState.viewUpdate,81                open: true,82            },83        });84        const clossAction = drawerToggleAction(false);85        expect(cloudreveApp(initState, clossAction)).toEqual({86            ...initState,87            viewUpdate: {88                ...initState.viewUpdate,89                open: false,90            },91        });92    });93    it("should handle CHANGE_VIEW_METHOD", () => {94        const action = changeViewMethod("list");95        expect(cloudreveApp(initState, action)).toEqual({96            ...initState,97            viewUpdate: {98                ...initState.viewUpdate,99                explorerViewMethod: "list",100            },101        });102    });103    it("should handle SET_SORT_METHOD", () => {104        const action = setSortMethod("sizeRes");105        expect(cloudreveApp(initState, action)).toEqual({106            ...initState,107            viewUpdate: {108                ...initState.viewUpdate,109                sortMethod: "sizeRes",110            },111        });112    });113    describe("CHANGE_SORT_METHOD", () => {114        const explorerState = {115            fileList: [116                {117                    type: "file",118                    name: "b",119                    size: 10,120                    date: "2020/04/30",121                },122                {123                    type: "file",124                    name: "a",125                    size: 11,126                    date: "2020/05/01",127                },128                {129                    type: "file",130                    name: "z",131                    size: 110,132                    date: "2020/04/29",133                },134            ],135            dirList: [136                {137                    type: "dir",138                    name: "b_dir",139                    size: 10,140                    date: "2020/04/30",141                },142                {143                    type: "dir",144                    name: "a_dir",145                    size: 11,146                    date: "2020/05/01",147                },148                {149                    type: "dir",150                    name: "z_dir",151                    size: 110,152                    date: "2020/04/29",153                },154            ],155        };156        const state = {157            ...initState,158            explorer: {159                ...initState.explorer,160                ...explorerState,161            },162        };163        it("should handle sizePos", async () => {164            const action = changeSortMethod("sizePos");165            const sortFunc = (a, b) => {166                return a.size - b.size;167            };168            const fileList = explorerState.fileList;169            const dirList = explorerState.dirList;170            const store = mockStore(state);171            await store.dispatch(action);172            expect(store.getActions()).toEqual([173                setSortMethod("sizePos"),174                setDirList(dirList.sort(sortFunc)),175                setFileList(fileList.sort(sortFunc)),176            ]);177        });178        it("should handle sizeRes", async () => {179            const action = changeSortMethod("sizePos");180            const sortFunc = (a, b) => {181                return b.size - a.size;182            };183            const fileList = explorerState.fileList;184            const dirList = explorerState.dirList;185            const store = mockStore(state);186            await store.dispatch(action);187            expect(store.getActions()).toEqual([188                setSortMethod("sizePos"),189                setDirList(dirList.sort(sortFunc)),190                setFileList(fileList.sort(sortFunc)),191            ]);192        });193        it("should handle namePos", async () => {194            const action = changeSortMethod("namePos");195            const sortFunc = (a, b) => {196                return a.name.localeCompare(b.name);197            };198            const fileList = explorerState.fileList;199            const dirList = explorerState.dirList;200            const store = mockStore(state);201            await store.dispatch(action);202            expect(store.getActions()).toEqual([203                setSortMethod("namePos"),204                setDirList(dirList.sort(sortFunc)),205                setFileList(fileList.sort(sortFunc)),206            ]);207        });208        it("should handle nameRev", async () => {209            const action = changeSortMethod("nameRev");210            const sortFunc = (a, b) => {211                return b.name.localeCompare(a.name);212            };213            const fileList = explorerState.fileList;214            const dirList = explorerState.dirList;215            const store = mockStore(state);216            await store.dispatch(action);217            expect(store.getActions()).toEqual([218                setSortMethod("nameRev"),219                setDirList(dirList.sort(sortFunc)),220                setFileList(fileList.sort(sortFunc)),221            ]);222        });223        it("should handle timePos", async () => {224            const action = changeSortMethod("timePos");225            const sortFunc = (a, b) => {226                return Date.parse(a.date) - Date.parse(b.date);227            };228            const fileList = explorerState.fileList;229            const dirList = explorerState.dirList;230            const store = mockStore(state);231            await store.dispatch(action);232            expect(store.getActions()).toEqual([233                setSortMethod("timePos"),234                setDirList(dirList.sort(sortFunc)),235                setFileList(fileList.sort(sortFunc)),236            ]);237        });238        it("should handle timeRev", async () => {239            const action = changeSortMethod("timeRev");240            const sortFunc = (a, b) => {241                return Date.parse(b.date) - Date.parse(a.date);242            };243            const fileList = explorerState.fileList;244            const dirList = explorerState.dirList;245            const store = mockStore(state);246            await store.dispatch(action);247            expect(store.getActions()).toEqual([248                setSortMethod("timeRev"),249                setDirList(dirList.sort(sortFunc)),250                setFileList(fileList.sort(sortFunc)),251            ]);252        });253    });254    it("should handle CHANGE_CONTEXT_MENU", () => {255        const action1 = changeContextMenu("empty", false);256        expect(cloudreveApp(initState, action1)).toEqual({257            ...initState,258            viewUpdate: {259                ...initState.viewUpdate,260                contextOpen: false,261                contextType: "empty",262            },263        });264        const action2 = changeContextMenu("aa", true);265        expect(cloudreveApp(initState, action2)).toEqual({266            ...initState,267            viewUpdate: {268                ...initState.viewUpdate,269                contextOpen: true,270                contextType: "aa",271            },272        });273    });274    it("should handle DRAG_AND_DROP", () => {275        const action = dragAndDrop("source", "target");276        expect(cloudreveApp(initState, action)).toEqual({277            ...initState,278            explorer: {279                ...initState.explorer,280                dndSignal: true,281                dndTarget: "target",282                dndSource: "source",283            },284        });285    });286    it("should handle SET_NAVIGATOR_LOADING_STATUE", () => {287        const action = setNavigatorLoadingStatus(true);288        expect(cloudreveApp(initState, action)).toEqual({289            ...initState,290            viewUpdate: {291                ...initState.viewUpdate,292                navigatorLoading: true,293            },294        });295    });296    it("should handle SET_NAVIGATOR_ERROR", () => {297        const action = setNavigatorError(true, "Error Message");298        expect(cloudreveApp(initState, action)).toEqual({299            ...initState,300            viewUpdate: {301                ...initState.viewUpdate,302                navigatorError: true,303                navigatorErrorMsg: "Error Message",304            },305        });306    });307    describe("UPDATE_FILE_LIST", () => {308        const fileList = [309            {310                type: "file",311                name: "b",312                size: 10,313                date: "2020/04/30",314            },315            {316                type: "file",317                name: "a",318                size: 11,319                date: "2020/05/01",320            },321            {322                type: "file",323                name: "z",324                size: 110,325                date: "2020/04/29",326            },327        ];328        const dirList = [329            {330                type: "dir",331                name: "b_dir",332                size: 10,333                date: "2020/04/30",334            },335            {336                type: "dir",337                name: "a_dir",338                size: 11,339                date: "2020/05/01",340            },341            {342                type: "dir",343                name: "z_dir",344                size: 110,345                date: "2020/04/29",346            },347        ];348        const updateAction = updateFileList([...fileList, ...dirList]);349        it("should handle sizePos", async () => {350            const sortFun = (a, b) => {351                return a.size - b.size;352            };353            const state = {354                ...initState,355                viewUpdate: {356                    ...initState.viewUpdate,357                    sortMethod: "sizePos",358                },359            };360            const store = mockStore(state);361            await store.dispatch(updateAction);362            expect(store.getActions()).toEqual([363                setDirList(dirList.sort(sortFun)),364                setFileList(fileList.sort(sortFun)),365            ]);366        });367        it("should handle sizeRes", async () => {368            const sortFun = (a, b) => {369                return b.size - a.size;370            };371            const state = {372                ...initState,373                viewUpdate: {374                    ...initState.viewUpdate,375                    sortMethod: "sizeRes",376                },377            };378            const store = mockStore(state);379            await store.dispatch(updateAction);380            expect(store.getActions()).toEqual([381                setDirList(dirList.sort(sortFun)),382                setFileList(fileList.sort(sortFun)),383            ]);384        });385        it("should handle namePos", async () => {386            const sortFun = (a, b) => {387                return a.name.localeCompare(b.name);388            };389            const state = {390                ...initState,391                viewUpdate: {392                    ...initState.viewUpdate,393                    sortMethod: "namePos",394                },395            };396            const store = mockStore(state);397            await store.dispatch(updateAction);398            expect(store.getActions()).toEqual([399                setDirList(dirList.sort(sortFun)),400                setFileList(fileList.sort(sortFun)),401            ]);402        });403        it("should handle nameRev", async () => {404            const sortFun = (a, b) => {405                return b.name.localeCompare(a.name);406            };407            const state = {408                ...initState,409                viewUpdate: {410                    ...initState.viewUpdate,411                    sortMethod: "nameRev",412                },413            };414            const store = mockStore(state);415            await store.dispatch(updateAction);416            expect(store.getActions()).toEqual([417                setDirList(dirList.sort(sortFun)),418                setFileList(fileList.sort(sortFun)),419            ]);420        });421        it("should handle timePos", async () => {422            const sortFun = (a, b) => {423                return Date.parse(a.date) - Date.parse(b.date);424            };425            const state = {426                ...initState,427                viewUpdate: {428                    ...initState.viewUpdate,429                    sortMethod: "timePos",430                },431            };432            const store = mockStore(state);433            await store.dispatch(updateAction);434            expect(store.getActions()).toEqual([435                setDirList(dirList.sort(sortFun)),436                setFileList(fileList.sort(sortFun)),437            ]);438        });439        it("should handle timeRev", async () => {440            const sortFun = (a, b) => {441                return Date.parse(b.date) - Date.parse(a.date);442            };443            const state = {444                ...initState,445                viewUpdate: {446                    ...initState.viewUpdate,447                    sortMethod: "timeRev",448                },449            };450            const store = mockStore(state);451            await store.dispatch(updateAction);452            expect(store.getActions()).toEqual([453                setDirList(dirList.sort(sortFun)),454                setFileList(fileList.sort(sortFun)),455            ]);456        });457    });458    it("should handle SET_FILE_LIST", () => {459        const action = setFileList([460            {461                type: "file",462                id: "a",463            },464            {465                type: "file",466                id: "b",467            },468        ]);469        expect(470            cloudreveApp(471                {472                    ...initState,473                    explorer: {474                        ...initState.explorer,475                        fileList: [{ type: "file", id: "test" }],476                    },477                },478                action479            )480        ).toEqual({481            ...initState,482            explorer: {483                ...initState.explorer,484                fileList: [485                    {486                        type: "file",487                        id: "a",488                    },489                    {490                        type: "file",491                        id: "b",492                    },493                ],494            },495        });496    });497    it("should handle SET_DIR_LIST", () => {498        const action = setDirList([499            {500                type: "dir",501                id: "a",502            },503            {504                type: "dir",505                id: "b",506            },507        ]);508        expect(509            cloudreveApp(510                {511                    ...initState,512                    explorer: {513                        ...initState.explorer,514                        dirList: [{ type: "dir", id: "test" }],515                    },516                },517                action518            )519        ).toEqual({520            ...initState,521            explorer: {522                ...initState.explorer,523                dirList: [524                    {525                        type: "dir",526                        id: "a",527                    },528                    {529                        type: "dir",530                        id: "b",531                    },532                ],533            },534        });535    });536    it("should handle ADD_SELECTED_TARGETS", () => {537        const newSelect = [538            {539                type: "file",540            },541            {542                type: "dir",543            },544        ];545        const action = addSelectedTargets(newSelect);546        expect(547            cloudreveApp(548                {549                    ...initState,550                    explorer: {551                        ...initState.explorer,552                        selected: [{ type: "file" }],553                    },554                },555                action556            )557        ).toEqual({558            ...initState,559            explorer: {560                ...initState.explorer,561                selected: [{ type: "file" }, ...newSelect],562                selectProps: {563                    isMultiple: true,564                    withFolder: true,565                    withFile: true,566                },567            },568        });569    });570    it("should handle SET_SELECTED_TARGET", () => {571        const newSelect = [572            {573                type: "file",574            },575            {576                type: "dir",577            },578        ];579        const action = setSelectedTarget(newSelect);580        expect(581            cloudreveApp(582                {583                    ...initState,584                    explorer: {585                        ...initState.explorer,586                        selected: [{ type: "file" }],587                    },588                },589                action590            )591        ).toEqual({592            ...initState,593            explorer: {594                ...initState.explorer,595                selected: newSelect,596                selectProps: {597                    isMultiple: true,598                    withFolder: true,599                    withFile: true,600                },601            },602        });603    });604    it("should handle RMOVE_SELECTED_TARGETS", () => {605        const remove = ["1"];606        const action = removeSelectedTargets(remove);607        expect(608            cloudreveApp(609                {610                    ...initState,611                    explorer: {612                        ...initState.explorer,613                        selected: [614                            { id: "1", type: "file" },615                            { id: "2", type: "file" },616                        ],617                    },618                },619                action620            )621        ).toEqual({622            ...initState,623            explorer: {624                ...initState.explorer,625                selected: [{ id: "2", type: "file" }],626                selectProps: {627                    isMultiple: false,628                    withFolder: false,629                    withFile: true,630                },631            },632        });633    });634    it("should handle NAVIGATOR_TO", async () => {635        const store = mockStore(initState);636        const action = navigateTo("/somewhere");637        await store.dispatch(action);638        expect(store.getActions()).toEqual([setNavigator("/somewhere", true)]);639    });640    it("should handle NAVIGATOR_UP", async () => {641        const navState = {642            ...initState,643            navigator: {644                ...initState.navigator,645                path: "/to/somewhere",646            },647        };648        const store = mockStore(navState);649        const action = navigateUp();650        await store.dispatch(action);651        expect(store.getActions()).toEqual([setNavigator("/to", true)]);652    });653    it("should handle SET_NAVIGATOR", () => {654        const navState = {655            ...initState,656            navigator: {657                ...initState.navigator,658                path: "/to/somewhere",659            },660        };661        const action = setNavigator("/newpath", true);662        expect(cloudreveApp(navState, action)).toEqual({663            ...initState,664            navigator: {665                ...initState.navigator,666                path: "/newpath",667            },668            viewUpdate: {669                ...initState.viewUpdate,670                contextOpen: false,671                navigatorError: false,672                navigatorLoading: true,673            },674            explorer: {675                ...initState.explorer,676                selected: [],677                selectProps: {678                    isMultiple: false,679                    withFolder: false,680                    withFile: false,681                },682                keywords: "",683            },684        });685        expect(window.currntPath).toEqual("/newpath");686    });687    it("should handle TOGGLE_DAYLIGHT_MODE", () => {688        const action = toggleDaylightMode();689        const darkState = {690            ...initState,691            siteConfig: {692                ...initState.siteConfig,693                theme: {694                    ...initState.siteConfig.theme,695                    palette: {696                        ...initState.siteConfig.theme.palette,697                        type: "dark",698                    },699                },700            },701        };702        const lightState = {703            ...initState,704            siteConfig: {705                ...initState.siteConfig,706                theme: {707                    ...initState.siteConfig.theme,708                    palette: {709                        ...initState.siteConfig.theme.palette,710                        type: "light",711                    },712                },713            },714        };715        expect(cloudreveApp(initState, action)).toEqual(darkState);716        expect(cloudreveApp(darkState, action)).toEqual(lightState);717    });718    it("should handle APPLY_THEME", () => {719        const action = applyThemes("foo");720        const stateWithThemes = {721            ...initState,722            siteConfig: {723                ...initState.siteConfig,724                themes: JSON.stringify({ foo: "bar" }),725            },726        };727        expect(cloudreveApp(stateWithThemes, action)).toEqual({728            ...stateWithThemes,729            siteConfig: {730                ...stateWithThemes.siteConfig,731                theme: "bar",732            },733        });734    });735    it("should handle OPEN_CREATE_FOLDER_DIALOG", () => {736        const action = openCreateFolderDialog();737        expect(cloudreveApp(initState, action)).toEqual({738            ...initState,739            viewUpdate: {740                ...initState.viewUpdate,741                modals: {742                    ...initState.viewUpdate.modals,743                    createNewFolder: true,744                },745                contextOpen: false,746            },747        });748    });749    it("should handle OPEN_RENAME_DIALOG", () => {750        const action = openRenameDialog();751        expect(cloudreveApp(initState, action)).toEqual({752            ...initState,753            viewUpdate: {754                ...initState.viewUpdate,755                modals: {756                    ...initState.viewUpdate.modals,757                    rename: true,758                },759                contextOpen: false,760            },761        });762    });763    it("should handle OPEN_REMOVE_DIALOG", () => {764        const action = openRemoveDialog();765        expect(cloudreveApp(initState, action)).toEqual({766            ...initState,767            viewUpdate: {768                ...initState.viewUpdate,769                modals: {770                    ...initState.viewUpdate.modals,771                    remove: true,772                },773                contextOpen: false,774            },775        });776    });777    it("should handle OPEN_MOVE_DIALOG", () => {778        const action = openMoveDialog();779        expect(cloudreveApp(initState, action)).toEqual({780            ...initState,781            viewUpdate: {782                ...initState.viewUpdate,783                modals: {784                    ...initState.viewUpdate.modals,785                    move: true,786                },787                contextOpen: false,788            },789        });790    });791    it("should handle OPEN_RESAVE_DIALOG", () => {792        const action = openResaveDialog();793        expect(cloudreveApp(initState, action)).toEqual({794            ...initState,795            viewUpdate: {796                ...initState.viewUpdate,797                modals: {798                    ...initState.viewUpdate.modals,799                    resave: true,800                },801                contextOpen: false,802            },803        });804    });805    it("should handle SET_USER_POPOVER", () => {806        // TODO: update to real anchor807        const action = setUserPopover("anchor");808        expect(cloudreveApp(initState, action)).toEqual({809            ...initState,810            viewUpdate: {811                ...initState.viewUpdate,812                userPopoverAnchorEl: "anchor",813            },814        });815    });816    it("should handle SET_SHARE_USER_POPOVER", () => {817        // TODO: update to real anchor818        const action = setShareUserPopover("anchor");819        expect(cloudreveApp(initState, action)).toEqual({820            ...initState,821            viewUpdate: {822                ...initState.viewUpdate,823                shareUserPopoverAnchorEl: "anchor",824            },825        });826    });827    it("should handle OPEN_SHARE_DIALOG", () => {828        // TODO: update to real anchor829        const action = openShareDialog();830        expect(cloudreveApp(initState, action)).toEqual({831            ...initState,832            viewUpdate: {833                ...initState.viewUpdate,834                modals: {835                    ...initState.viewUpdate.modals,836                    share: true,837                },838                contextOpen: false,839            },840        });841    });842    it("should handle SET_SITE_CONFIG", () => {843        // TODO: update to real anchor844        const action = setSiteConfig({ foo: "bar" });845        expect(cloudreveApp(initState, action)).toEqual({846            ...initState,847            siteConfig: {848                foo: "bar",849            },850        });851    });852    it("should handle SET_SITE_CONFIG", () => {853        // TODO: update to real anchor854        const action = setSiteConfig({ foo: "bar" });855        expect(cloudreveApp(initState, action)).toEqual({856            ...initState,857            siteConfig: {858                foo: "bar",859            },860        });861    });862    it("should handle OPEN_MUSIC_DIALOG", () => {863        const action = openMusicDialog();864        expect(cloudreveApp(initState, action)).toEqual({865            ...initState,866            viewUpdate: {867                ...initState.viewUpdate,868                modals: {869                    ...initState.viewUpdate.modals,870                    music: true,871                },872                contextOpen: false,873            },874        });875    });876    it("should handle OPEN_REMOTE_DOWNLOAD_DIALOG", () => {877        const action = openRemoteDownloadDialog();878        expect(cloudreveApp(initState, action)).toEqual({879            ...initState,880            viewUpdate: {881                ...initState.viewUpdate,882                modals: {883                    ...initState.viewUpdate.modals,884                    remoteDownload: true,885                },886                contextOpen: false,887            },888        });889    });890    it("should handle OPEN_TORRENT_DOWNLOAD_DIALOG", () => {891        const action = openTorrentDownloadDialog();892        expect(cloudreveApp(initState, action)).toEqual({893            ...initState,894            viewUpdate: {895                ...initState.viewUpdate,896                modals: {897                    ...initState.viewUpdate.modals,898                    torrentDownload: true,899                },900                contextOpen: false,901            },902        });903    });904    it("should handle OPEN_DECOMPRESS_DIALOG", () => {905        const action = openDecompressDialog();906        expect(cloudreveApp(initState, action)).toEqual({907            ...initState,908            viewUpdate: {909                ...initState.viewUpdate,910                modals: {911                    ...initState.viewUpdate.modals,912                    decompress: true,913                },914                contextOpen: false,915            },916        });917    });918    it("should handle OPEN_COMPRESS_DIALOG", () => {919        const action = openCompressDialog();920        expect(cloudreveApp(initState, action)).toEqual({921            ...initState,922            viewUpdate: {923                ...initState.viewUpdate,924                modals: {925                    ...initState.viewUpdate.modals,926                    compress: true,927                },928                contextOpen: false,929            },930        });931    });932    it("should handle OPEN_GET_SOURCE_DIALOG", () => {933        const action = openGetSourceDialog();934        expect(cloudreveApp(initState, action)).toEqual({935            ...initState,936            viewUpdate: {937                ...initState.viewUpdate,938                modals: {939                    ...initState.viewUpdate.modals,940                    getSource: true,941                },942                contextOpen: false,943            },944        });945    });946    it("should handle OPEN_COPY_DIALOG", () => {947        const action = openCopyDialog();948        expect(cloudreveApp(initState, action)).toEqual({949            ...initState,950            viewUpdate: {951                ...initState.viewUpdate,952                modals: {953                    ...initState.viewUpdate.modals,954                    copy: true,955                },956                contextOpen: false,957            },958        });959    });960    it("should handle OPEN_LOADING_DIALOG", () => {961        const action = openLoadingDialog("loading");962        expect(cloudreveApp(initState, action)).toEqual({963            ...initState,964            viewUpdate: {965                ...initState.viewUpdate,966                modals: {967                    ...initState.viewUpdate.modals,968                    loading: true,969                    loadingText: "loading",970                },971                contextOpen: false,972            },973        });974    });975    it("should handle CLOSE_ALL_MODALS", () => {976        const action = closeAllModals();977        expect(cloudreveApp(initState, action)).toEqual({978            ...initState,979            viewUpdate: {980                ...initState.viewUpdate,981                modals: {982                    ...initState.viewUpdate.modals,983                    createNewFolder: false,984                    rename: false,985                    move: false,986                    remove: false,987                    share: false,988                    music: false,989                    remoteDownload: false,990                    torrentDownload: false,991                    getSource: false,992                    resave: false,993                    copy: false,994                    loading: false,995                    compress: false,996                    decompress: false,997                },998            },999        });1000    });1001    it("should handle CHANGE_SUB_TITLE", async () => {1002        const store = mockStore(initState);1003        const action = changeSubTitle("test sub title");1004        await store.dispatch(action);1005        expect(store.getActions()).toEqual([setSubtitle("test sub title")]);1006        expect(document.title).toEqual("test sub title - CloudEnterprise");1007    });1008    it("should handle SET_SUBTITLE", () => {1009        const action = setSubtitle("test sub title 2");1010        expect(cloudreveApp(initState, action)).toEqual({1011            ...initState,1012            viewUpdate: {1013                ...initState.viewUpdate,1014                subTitle: "test sub title 2",1015            },1016        });1017    });1018    it("should handle TOGGLE_SNACKBAR", () => {1019        const action = toggleSnackbar(1020            "top",1021            "right",1022            "something wrong",1023            "error"1024        );1025        expect(cloudreveApp(initState, action)).toEqual({1026            ...initState,1027            viewUpdate: {1028                ...initState.viewUpdate,1029                snackbar: {1030                    toggle: true,1031                    vertical: "top",1032                    horizontal: "right",1033                    msg: "something wrong",1034                    color: "error",1035                },1036            },1037        });1038    });1039    it("should handle SET_MODALS_LOADING", () => {1040        const action = setModalsLoading("test loading status");1041        expect(cloudreveApp(initState, action)).toEqual({1042            ...initState,1043            viewUpdate: {1044                ...initState.viewUpdate,1045                modalsLoading: "test loading status",1046            },1047        });1048    });1049    it("should handle SET_SESSION_STATUS", () => {1050        const action = setSessionStatus(true);1051        expect(cloudreveApp(initState, action)).toEqual({1052            ...initState,1053            viewUpdate: {1054                ...initState.viewUpdate,1055                isLogin: true,1056            },1057        });1058    });1059    it("should handle ENABLE_LOAD_UPLOADER", () => {1060        const action = enableLoadUploader();1061        expect(cloudreveApp(initState, action)).toEqual({1062            ...initState,1063            viewUpdate: {1064                ...initState.viewUpdate,1065                loadUploader: true,1066            },1067        });1068    });1069    it("should handle REFRESH_FILE_LIST", () => {1070        const action = refreshFileList();1071        expect(cloudreveApp(initState, action)).toEqual({1072            ...initState,1073            navigator: {1074                ...initState.navigator,1075                refresh: false,1076            },1077            explorer: {1078                ...initState.explorer,1079                selected: [],1080                selectProps: {1081                    isMultiple: false,1082                    withFolder: false,1083                    withFile: false,1084                },1085            },1086        });1087    });1088    it("should handle SEARCH_MY_FILE", () => {1089        const action = searchMyFile("keyword");1090        expect(cloudreveApp(initState, action)).toEqual({1091            ...initState,1092            navigator: {1093                ...initState.navigator,1094                path: "/æç´¢ç»æ",1095                refresh: true,1096            },1097            viewUpdate: {1098                ...initState.viewUpdate,1099                contextOpen: false,1100                navigatorError: false,1101                navigatorLoading: true,1102            },1103            explorer: {1104                ...initState.explorer,1105                selected: [],1106                selectProps: {1107                    isMultiple: false,1108                    withFolder: false,1109                    withFile: false,1110                },1111                keywords: "keyword",1112            },1113        });1114    });1115    it("should handle SHOW_IMG_PREIVEW", () => {1116        const action = showImgPreivew({ type: "file" });1117        const showImgState = {1118            ...initState,1119            explorer: {1120                ...initState.explorer,1121                fileList: [{ type: "file" }, { type: "dir" }],1122            },1123        };1124        expect(cloudreveApp(showImgState, action)).toEqual({1125            ...showImgState,1126            explorer: {1127                ...showImgState.explorer,1128                imgPreview: {1129                    ...showImgState.explorer.imgPreview,1130                    first: { type: "file" },1131                    other: [{ type: "file" }, { type: "dir" }],1132                },1133            },1134        });1135    });1136    it("should handle REFRESH_STORAGE", () => {1137        const action = refreshStorage();1138        expect(cloudreveApp(initState, action)).toEqual({1139            ...initState,1140            viewUpdate: {1141                ...initState.viewUpdate,1142                storageRefresh: true,1143            },1144        });1145    });1146    it("should handle SAVE_FILE", () => {1147        const action = saveFile();1148        expect(cloudreveApp(initState, action)).toEqual({1149            ...initState,1150            explorer: {1151                ...initState.explorer,1152                fileSave: true,1153            },1154        });1155    });1156    it("should handle SET_LAST_SELECT", () => {1157        const action = setLastSelect({ type: "file" }, 1);1158        expect(cloudreveApp(initState, action)).toEqual({1159            ...initState,1160            explorer: {1161                ...initState.explorer,1162                lastSelect: {1163                    file: { type: "file" },1164                    index: 1,1165                },1166            },1167        });1168    });1169    it("should handle SET_SHIFT_SELECTED_IDS", () => {1170        const action = setShiftSelectedIds(["1", "2"]);1171        expect(cloudreveApp(initState, action)).toEqual({1172            ...initState,1173            explorer: {1174                ...initState.explorer,1175                shiftSelectedIds: ["1", "2"],1176            },1177        });1178    });...currency.test.js
Source:currency.test.js  
1import {2  selectBtc,3  selectEth,4  selectOffset,5  fetchBtcRequest,6  fetchEthRequest,7  fetchBtcSuccess,8  fetchBtcFailure,9  fetchEthFailure,10  fetchEthSuccess11} from '../../actions/currency';12import { currency } from '../currency';13const initState = {14  selected: 'btc',15  offset: '2h',16  btc: [],17  eth: [],18  btcLoadingState: {19    isLoading: false,20    isLoaded: false,21    error: false22  },23  ethLoadingState: {24    isLoading: false,25    isLoaded: false,26    error: false27  }28};29describe('currency reducer', () => {30  describe('selectBtc action', () => {31    it('shouldn`t mutate init state', () => {32      expect(currency(initState, selectBtc())).not.toBe(initState);33    });34    it('should put btc to selected field', () => {35      expect(currency(null, selectBtc('btc')).selected).toBe('btc');36    });37  });38  describe('selectEth action', () => {39    it('shouldn`t mutate init state', () => {40      expect(currency(initState, selectEth())).not.toBe(initState);41    });42    it('should put eth to selected field', () => {43      expect(currency(null, selectEth('eth')).selected).toBe('eth');44    });45  });46  describe('selectOffset action', () => {47    it('shouldn`t mutate init state', () => {48      expect(currency(initState, selectOffset())).not.toBe(initState);49    });50    it('should put action.payload to offset field', () => {51      expect(currency(null, selectOffset('data')).offset).toBe('data');52    });53  });54  describe('fetchBtcRequest action', () => {55    it('shouldn`t mutate init state', () => {56      expect(currency(initState, fetchBtcRequest())).not.toBe(initState);57    });58    it('shouldn`t mutate init btcLoadingState object', () => {59      expect(currency(initState, fetchBtcRequest()).btcLoadingState).not.toBe(60        initState.btcLoadingState61      );62    });63    it('should set true to btcLoadingState.isLoading field', () => {64      initState.btcLoadingState.isLoading = false;65      expect(66        currency(initState, fetchBtcRequest()).btcLoadingState.isLoading67      ).toBe(true);68    });69    it('should set false to btcLoadingState.isLoaded field', () => {70      initState.btcLoadingState.isLoaded = true;71      expect(72        currency(initState, fetchBtcRequest()).btcLoadingState.isLoaded73      ).toBe(false);74    });75    it('should set false to btcLoadingState.error field', () => {76      initState.btcLoadingState.error = true;77      expect(currency(initState, fetchBtcRequest()).btcLoadingState.error).toBe(78        false79      );80    });81  });82  describe('fetchBtcSuccess action', () => {83    it('shouldn`t mutate init state', () => {84      expect(currency(initState, fetchBtcSuccess())).not.toBe(initState);85    });86    it('shouldn`t mutate init btcLoadingState object', () => {87      expect(currency(initState, fetchBtcSuccess()).btcLoadingState).not.toBe(88        initState.btcLoadingState89      );90    });91    it('should set false to btcLoadingState.isLoading field', () => {92      initState.btcLoadingState.isLoading = true;93      expect(94        currency(initState, fetchBtcSuccess()).btcLoadingState.isLoading95      ).toBe(false);96    });97    it('should set true to btcLoadingState.isLoaded field', () => {98      initState.btcLoadingState.isLoaded = false;99      expect(100        currency(initState, fetchBtcSuccess()).btcLoadingState.isLoaded101      ).toBe(true);102    });103    it('should set false to btcLoadingState.error field', () => {104      initState.btcLoadingState.error = true;105      expect(currency(initState, fetchBtcSuccess()).btcLoadingState.error).toBe(106        false107      );108    });109    it('should put action.payload to btc field', () => {110      expect(currency(initState, fetchBtcSuccess('data')).btc).toBe('data');111    });112  });113  describe('fetchBtcFailure action', () => {114    it('shouldn`t mutate init state', () => {115      expect(currency(initState, fetchBtcFailure())).not.toBe(initState);116    });117    it('shouldn`t mutate init btcLoadingState object', () => {118      expect(currency(initState, fetchBtcFailure()).btcLoadingState).not.toBe(119        initState.btcLoadingState120      );121    });122    it('should set false to btcLoadingState.isLoading field', () => {123      initState.btcLoadingState.isLoading = true;124      expect(125        currency(initState, fetchBtcFailure()).btcLoadingState.isLoading126      ).toBe(false);127    });128    it('should set true to btcLoadingState.isLoaded field', () => {129      initState.btcLoadingState.isLoaded = false;130      expect(131        currency(initState, fetchBtcFailure()).btcLoadingState.isLoaded132      ).toBe(true);133    });134    it('should put action.error to btcLoadingState.error field', () => {135      initState.btcLoadingState.error = false;136      expect(137        currency(initState, fetchBtcFailure(new Error())).btcLoadingState.error138      ).toBe(true);139    });140  });141  describe('fetchEthRequest action', () => {142    it('shouldn`t mutate init state', () => {143      expect(currency(initState, fetchEthRequest())).not.toBe(initState);144    });145    it('shouldn`t mutate init ethLoadingState object', () => {146      expect(currency(initState, fetchEthRequest()).ethLoadingState).not.toBe(147        initState.ethLoadingState148      );149    });150    it('should set true to ethLoadingState.isLoading field', () => {151      initState.ethLoadingState.isLoading = false;152      expect(153        currency(initState, fetchEthRequest()).ethLoadingState.isLoading154      ).toBe(true);155    });156    it('should set false to ethLoadingState.isLoaded field', () => {157      initState.ethLoadingState.isLoaded = true;158      expect(159        currency(initState, fetchEthRequest()).ethLoadingState.isLoaded160      ).toBe(false);161    });162    it('should set false to ethLoadingState.error field', () => {163      initState.ethLoadingState.error = true;164      expect(currency(initState, fetchEthRequest()).ethLoadingState.error).toBe(165        false166      );167    });168  });169  describe('fetchEthSuccess action', () => {170    it('shouldn`t mutate init state', () => {171      expect(currency(initState, fetchEthSuccess())).not.toBe(initState);172    });173    it('shouldn`t mutate init ethLoadingState object', () => {174      expect(currency(initState, fetchEthSuccess()).ethLoadingState).not.toBe(175        initState.ethLoadingState176      );177    });178    it('should set false to ethLoadingState.isLoading field', () => {179      initState.btcLoadingState.isLoading = true;180      expect(181        currency(initState, fetchEthSuccess()).ethLoadingState.isLoading182      ).toBe(false);183    });184    it('should set true to ethLoadingState.isLoaded field', () => {185      initState.ethLoadingState.isLoaded = false;186      expect(187        currency(initState, fetchEthSuccess()).ethLoadingState.isLoaded188      ).toBe(true);189    });190    it('should set false to ethLoadingState.error field', () => {191      initState.ethLoadingState.error = true;192      expect(currency(initState, fetchEthSuccess()).ethLoadingState.error).toBe(193        false194      );195    });196    it('should put action.payload to eth field', () => {197      expect(currency(initState, fetchEthSuccess('data')).eth).toBe('data');198    });199  });200  describe('fetchEthFailure action', () => {201    it('shouldn`t mutate init state', () => {202      expect(currency(initState, fetchEthFailure())).not.toBe(initState);203    });204    it('shouldn`t mutate init ethLoadingState object', () => {205      expect(currency(initState, fetchEthFailure()).ethLoadingState).not.toBe(206        initState.ethLoadingState207      );208    });209    it('should set false to ethLoadingState.isLoading field', () => {210      initState.ethLoadingState.isLoading = true;211      expect(212        currency(initState, fetchEthFailure()).ethLoadingState.isLoading213      ).toBe(false);214    });215    it('should set true to ethLoadingState.isLoaded field', () => {216      initState.ethLoadingState.isLoaded = false;217      expect(218        currency(initState, fetchEthFailure()).ethLoadingState.isLoaded219      ).toBe(true);220    });221    it('should put action.error to ethLoadingState.error field', () => {222      initState.ethLoadingState.error = false;223      expect(224        currency(initState, fetchEthFailure(new Error())).ethLoadingState.error225      ).toBe(true);226    });227  });...auth.test.js
Source:auth.test.js  
1import { authReducer } from './auth';2import {3  LOGIN_FORM_SET_VALUE,4  LOGIN_FORM_SUBMIT_REQUEST,5  LOGIN_FORM_SUBMIT_SUCCESS,6  LOGIN_FORM_SUBMIT_FAILED,7  LOGOUT_FORM_SUBMIT_REQUEST,8  LOGOUT_FORM_SUBMIT_SUCCESS,9  LOGOUT_FORM_SUBMIT_FAILED,10  GET_USER_DATA_REQUEST,11  GET_USER_DATA_SUCCESS,12  GET_USER_DATA_FAILED,13  GET_USER_DATA_SET_VALUE,14} from '../actions/auth';15const initState = {16  form: {17    name: '',18    password: '',19    email: '',20    token: '',21  },22  loginRequest: false,23  loginFailed: false,24  logoutRequest: false,25  logoutFailed: false,26  getUserRequest: false,27  getUserFailed: false,28  getUserLoaded: false,29  user: {},30};31describe('authReducer', () => {32  it('should return the initial state', () => {33    expect(authReducer(undefined, {})).toEqual(initState);34  });35  it('should handle LOGIN_FORM_SET_VALUE', () => {36    expect(37      authReducer(initState, {38        type: LOGIN_FORM_SET_VALUE,39        field: 'email',40        value: 'mail@mail.ru',41      }),42    ).toEqual(43      {44        ...initState,45        form: {46          ...initState.form,47          email: 'mail@mail.ru',48        },49      },50    );51    expect(52      authReducer(initState, {53        type: LOGIN_FORM_SET_VALUE,54        field: 'password',55        value: 'qwerty',56      }),57    ).toEqual(58      {59        ...initState,60        form: {61          ...initState.form,62          password: 'qwerty',63        },64      },65    );66  });67  it('should handle LOGIN_FORM_SUBMIT_REQUEST', () => {68    expect(69      authReducer({70        ...initState,71        form: {72          ...initState.form,73          email: 'mail@mail.ru',74          password: 'qwerty',75        },76      }, {77        type: LOGIN_FORM_SUBMIT_REQUEST,78      }),79    ).toEqual(80      {81        ...initState,82        form: {83          ...initState.form,84          email: 'mail@mail.ru',85          password: 'qwerty',86        },87        loginRequest: true,88      },89    );90  });91  it('should handle LOGIN_FORM_SUBMIT_SUCCESS', () => {92    expect(93      authReducer({94        ...initState,95        form: {96          ...initState.form,97          email: 'mail@mail.ru',98          password: 'qwerty',99        },100        loginRequest: true,101      }, {102        type: LOGIN_FORM_SUBMIT_SUCCESS,103        user: {104          name: 'ÐмиÑÑий',105          email: 'mail@mail.ru',106        },107      }),108    ).toEqual(109      {110        ...initState,111        form: {112          ...initState.form,113          email: '',114          password: '',115        },116        user: {117          name: 'ÐмиÑÑий',118          email: 'mail@mail.ru',119        },120        loginRequest: false,121      },122    );123  });124  it('should handle LOGIN_FORM_SUBMIT_FAILED', () => {125    expect(126      authReducer({127        ...initState,128        form: {129          ...initState.form,130          email: 'mail@mail.ru',131          password: 'qwerty',132        },133      }, {134        type: LOGIN_FORM_SUBMIT_FAILED,135      }),136    ).toEqual(137      {138        ...initState,139        form: {140          ...initState.form,141          email: 'mail@mail.ru',142          password: 'qwerty',143        },144        loginFailed: true,145      },146    );147  });148  it('should handle LOGOUT_FORM_SUBMIT_REQUEST', () => {149    expect(150      authReducer({151        ...initState,152        form: {153          ...initState.form,154          email: '',155        },156        user: {157          name: 'ÐмиÑÑий',158          email: 'mail@mail.ru',159        },160      }, {161        type: LOGOUT_FORM_SUBMIT_REQUEST,162      }),163    ).toEqual(164      {165        ...initState,166        form: {167          ...initState.form,168          email: '',169        },170        user: {171          name: 'ÐмиÑÑий',172          email: 'mail@mail.ru',173        },174        logoutRequest: true,175      },176    );177  });178  it('should handle LOGOUT_FORM_SUBMIT_SUCCESS', () => {179    expect(180      authReducer({181        ...initState,182        form: {183          ...initState.form,184          email: '',185        },186        user: {187          name: 'ÐмиÑÑий',188          email: 'mail@mail.ru',189        },190        logoutRequest: true,191      }, {192        type: LOGOUT_FORM_SUBMIT_SUCCESS,193      }),194    ).toEqual(195      {196        ...initState,197        form: {198          ...initState.form,199          email: '',200          password: '',201        },202        logoutRequest: false,203      },204    );205  });206  it('should handle LOGOUT_FORM_SUBMIT_FAILED', () => {207    expect(208      authReducer({209        ...initState,210        form: {211          ...initState.form,212          email: '',213        },214        user: {215          name: 'ÐмиÑÑий',216          email: 'mail@mail.ru',217        },218      }, {219        type: LOGOUT_FORM_SUBMIT_FAILED,220      }),221    ).toEqual(222      {223        ...initState,224        form: {225          ...initState.form,226          email: '',227        },228        user: {229          name: 'ÐмиÑÑий',230          email: 'mail@mail.ru',231        },232        logoutRequest: false,233        logoutFailed: true,234      },235    );236  });237  it('should handle GET_USER_DATA_SET_VALUE', () => {238    expect(239      authReducer({240        ...initState,241        form: {242          ...initState.form,243          email: '',244        },245        user: {246          name: 'ÐмиÑÑий',247          email: 'mail@mail.ru',248        },249      }, {250        type: GET_USER_DATA_SET_VALUE,251        field: 'name',252        value: 'Ðима',253      }),254    ).toEqual(255      {256        ...initState,257        form: {258          ...initState.form,259          email: '',260          name: '',261        },262        user: {263          name: 'Ðима',264          email: 'mail@mail.ru',265        },266      },267    );268  });269  it('should handle GET_USER_DATA_REQUEST', () => {270    expect(271      authReducer({272        ...initState,273        form: {274          ...initState.form,275          email: '',276        },277        user: {278          name: 'ÐмиÑÑий',279          email: 'mail@mail.ru',280        },281      }, {282        type: GET_USER_DATA_REQUEST,283      }),284    ).toEqual(285      {286        ...initState,287        form: {288          ...initState.form,289          email: '',290        },291        user: {292          name: 'ÐмиÑÑий',293          email: 'mail@mail.ru',294        },295        getUserRequest: true,296      },297    );298  });299  it('should handle GET_USER_DATA_SUCCESS', () => {300    expect(301      authReducer({302        ...initState,303        form: {304          ...initState.form,305          email: '',306        },307        user: {308          name: 'ÐмиÑÑий',309          email: 'mail@mail.ru',310        },311        getUserRequest: true,312      }, {313        type: GET_USER_DATA_SUCCESS,314        user: {315          name: 'ÐмиÑÑий',316          email: 'mail@mail.ru',317        },318      }),319    ).toEqual(320      {321        ...initState,322        form: {323          ...initState.form,324          email: '',325        },326        user: {327          name: 'ÐмиÑÑий',328          email: 'mail@mail.ru',329        },330        getUserRequest: false,331        getUserLoaded: true,332      },333    );334  });335  it('should handle GET_USER_DATA_FAILED', () => {336    expect(337      authReducer({338        ...initState,339        form: {340          ...initState.form,341          email: '',342        },343        user: {344          name: 'ÐмиÑÑий',345          email: 'mail@mail.ru',346        },347      }, {348        type: GET_USER_DATA_FAILED,349      }),350    ).toEqual(351      {352        ...initState,353        form: {354          ...initState.form,355          email: '',356        },357        user: {358          name: 'ÐмиÑÑий',359          email: 'mail@mail.ru',360        },361        getUserRequest: false,362        getUserFailed: true,363      },364    );365  });...module.js
Source:module.js  
1let module = (function(){2    let imgs = document.getElementsByClassName('content-main-image'),3        filter = document.getElementsByClassName('filterSize'),4        resultApi = document.getElementById('sidebar-filter-title'),5        spinner = document.getElementById('spinner')6    let initModule,loadImgs,nextTwentyImgs,prevTwentyImgs,getImgs,7        updateListImg,select,filterName,sortImgs,takeImg8    let initState = {9        select:'all',10        ResultFetch : [],11        ImagesArray : [],12        LargeImgs :[],13        MediumImgs :[],14        SmallImgs :[],15        step : 2016    }17    loadImgs = ()=>{18        spinner.classList.toggle('spin-visible')19        fetch('https://unsplash.it/list')20        .then(response=>response.json()21            .then(data=>{22                initState.ResultFetch = data23                initState.ImagesArray = initState.ResultFetch24                resultApi.innerHTML = `API вÑдал ${data.length} каÑÑинок`25                spinner.classList.toggle('spin-visible')26                return initState.ImagesArray;27            })28            .then(()=>{    29                for(let i=0;i<20;i++){30                    let span = document.createElement('span')31                    span.innerText  = 32                    `${initState.ImagesArray[i].width} x ${initState.ImagesArray[i].height}33                     ${initState.ImagesArray[i].author}`34                    imgs[i].appendChild(span)35                }  36                sortImgs()   37            })38        )39    }40    nextTwentyImgs = function(){41        let arrImgs = initState.ImagesArray42        if(arrImgs.length<20)return43        for(let i=0;i<20;i++){44            if(arrImgs[initState.step+i]==undefined){45                imgs[i].getElementsByTagName('span')[0].innerHTML=''46                continue;47             }48            imgs[i].getElementsByTagName('span')[0].innerHTML =  49            `${arrImgs[initState.step+i].width} x 50            ${arrImgs[initState.step+i].height} 51            ${arrImgs[initState.step+i].author}`52        }53        initState.step+=20;54    }55    prevTwentyImgs = function(){56        let arrImgs = initState.ImagesArray57        if(arrImgs.length<20)return58        if(initState.step!==20){59            initState.step-=40;60            for(let i=0;i<20;i++){61                imgs[i].getElementsByTagName('span')[0].innerHTML =  62                `${arrImgs[initState.step+i].width} x 63                ${arrImgs[initState.step+i].height} 64                ${arrImgs[initState.step+i].author}`65            }66            initState.step+=2067        }68    }    69    sortImgs = function(){70        initState.ResultFetch.map(item=>{71            item.height>1500&&72            item.width>1500&&73            initState.LargeImgs.push(item)   74            75            item.height>800&&item.height<1499&&76            item.width>800&&item.width<1499&&77            initState.MediumImgs.push(item)   78            79            item.height<799&&initState.SmallImgs.push(item)80        })81    }          82    getImgs = function(size,callback){83            switch(size){84                case 'large':85                initState.select='large'86                initState.ImagesArray=initState.LargeImgs87                resultApi.innerHTML = `Ðайдено ${initState.LargeImgs.length} каÑÑинок`88                callback(initState.LargeImgs)89                break90                case 'medium':91                initState.select='medium'92                initState.ImagesArray=initState.MediumImgs93                resultApi.innerHTML = `Ðайдено ${initState.MediumImgs.length} каÑÑинок`94                callback(initState.MediumImgs)95                break96                case 'small':97                initState.select='small'98                initState.ImagesArray=initState.SmallImgs99                resultApi.innerHTML = `Ðайдено ${initState.SmallImgs.length} каÑÑинок`100                callback(initState.SmallImgs)101                break102                default: 103                initState.select='all'104                initState.ImagesArray=initState.ResultFetch105                resultApi.innerHTML = `ÐÑего ${initState.ResultFetch.length} каÑÑинок`106                callback(initState.ResultFetch)107            }  108            console.log(initState.select)109    }110    updateListImg = function(arrImgs){111        for(let i=0;i<20;i++){112            if(arrImgs[i]==undefined){113               imgs[i].getElementsByTagName('span')[0].innerHTML=''114               continue;115            }116            imgs[i].getElementsByTagName('span')[0].innerHTML = 117            `${arrImgs[i].width} x 118            ${arrImgs[i].height}119            ${arrImgs[i].author}`120        }121        initState.step = 20;122    }123    select = function(e,key){124        for(let key of filter) key.classList.remove('select')125        document.getElementById(e.currentTarget.id).classList.add('select')126    }127    takeImg = function(e,element){128        if(element.getElementsByTagName('span')[0].innerHTML=='')return129        element.classList.toggle('active')130    }131    filterName = function(e,callback){132        e.code='Backspace'?initState.ImagesArray=initState.ResultFetch:''133        let resultFilter = [],134            arrForFilter = []135        let inputFilterName = e.currentTarget136        //document.getElementById(inputFilterName.id).nextSibling.innerHTML = inputFilterName.value137        initState.select == 'all' && (arrForFilter=initState.ResultFetch)138        initState.select == 'large' && (arrForFilter=initState.LargeImgs)139        initState.select == 'medium' && (arrForFilter=initState.MediumImgs)140        initState.select == 'small' && (arrForFilter=initState.SmallImgs)141        arrForFilter.forEach(function(element) {142            element.author.indexOf(inputFilterName.value)!=-1&&resultFilter.push(element)         143        }, this);144        callback(resultFilter)145    }146    initModule = ()=>{147        loadImgs()148        for(let key of filter)  key.addEventListener('click',(e) => select(e,key))149        for (let key of imgs) key.addEventListener('click',(e)=>takeImg(e,key))150        document.getElementById('largeImg').addEventListener('click',()=>getImgs('large',updateListImg))151        document.getElementById('mediumImg').addEventListener('click',()=>getImgs('medium',updateListImg))152        document.getElementById('smallImg').addEventListener('click',()=>getImgs('small',updateListImg))153        document.getElementById('allImg').addEventListener('click',()=>getImgs(null,updateListImg))154        document.getElementById('arrow-prew').addEventListener('click',()=>prevTwentyImgs())155        document.getElementById('arrow-next').addEventListener('click',()=>nextTwentyImgs())156        document.getElementById('filterName').addEventListener('keyup',(e)=>filterName(e,updateListImg))157    }158    return {159        initModule160    }...index.js
Source:index.js  
1/* global Rx */2const stage = document.getElementById("stage");3const context = stage.getContext('2d');4context.fillStyle = "green";5const PADDLE_WIDTH = 100;6const PADDLE_HEIGHT = 20;7const BALL_RADIUS = 10;8const BRICK_ROWS = 6;9const BRICK_COLUMNS = 7;10const BRICK_HEIGHT = 20;11const BRICK_GAP = 3;12//çæçç§»å¨éé13const PADDLE_SPEED = 240;14const BALL_SPEED = 100;15const PADDLE_CONTROLS = {16    'ArrowLeft': -1,17    'ArrowRight': 118}19const initState = {20    ball: {21        position: {22            x: stage.width / 2,23            y: stage.height - PADDLE_HEIGHT - BALL_RADIUS24        },25        direction: {26            x: 1,27            y: -128        }29    },30    paddle: {31        position: stage.width / 232    },33    bricks: createBricks(),34    score: 035}36//æ¾ç¤ºæ¸¸æè¯´æ37function drawIntro() {38    context.clearRect(0, 0, stage.width, stage.height);39    context.textAlign = "center";40    context.font = '24px Courier New';41    context.fillText("Press [<] and [>]", stage.width / 2, stage.height / 2);42}43//ç»å¶çæ44function drawPaddle(position) {45    context.beginPath();46    context.rect(47        position - PADDLE_WIDTH / 2,48        stage.height - PADDLE_HEIGHT,49        PADDLE_WIDTH,50        PADDLE_HEIGHT51    );52    context.fill();53    context.closePath();54}55function drawScore(score) {56    context.font = "16px";57    context.fillText(score, BRICK_GAP, 16)58}59function createBricks() {60    let width = (stage.width - BRICK_GAP * (BRICK_COLUMNS + 1)) / BRICK_COLUMNS;61    let bricks = [];62    for (i = 0; i < BRICK_ROWS; i++) {63        for (j = 0; j < BRICK_COLUMNS; j++) {64            bricks.push({65                x: BRICK_GAP * (j + 1) + j * width,66                y: BRICK_GAP * (i + 1) + i * BRICK_HEIGHT + 16,67                width: width,68                height: BRICK_HEIGHT69            })70        }71    }72    return bricks;73}74function drawDrick(brick) {75    context.beginPath();76    context.rect(77        brick.x,78        brick.y,79        brick.width,80        brick.height81    );82    context.fill();83    context.closePath();84}85function drawDricks(bricks) {86    bricks.forEach(brick => {87        drawDrick(brick)88    })89}90function drawBall(ball) {91    context.beginPath();92    context.arc(ball.position.x, ball.position.y, BALL_RADIUS, 0, Math.PI * 2);93    context.fill();94    context.closePath();95}96let nextPaddlePosation = initState.paddle.position;97const time$ = Rx.Observable98    //ä¿æ60hzçå·æ°ç99    .interval(1000 / 60, Rx.Scheduler.requestAnimationFrame)100    .map(() => ({101        time: Date.now(),102        deltaTime: null103    }))104    .scan((previous, current) => ({105        time: current.time,106        deltaTime: (current.time - previous.time) / 1000107    }))108const keys$ = Rx.Observable109    //mergeå
å°å
å¾110    .merge(111        Rx.Observable.fromEvent(document, 'keydown').map(event => (PADDLE_CONTROLS[event.key] || 0)),112        //éæ¾æé®113        Rx.Observable.fromEvent(document, 'keyup').map(event => (0))114    )115    //å¯¹æ°æ®å»é116    .distinctUntilChanged();117//夿çè·ç åæ¯å¦ç¢°æ118function isCollision(brick, ball) {119    return ball.position.x > brick.x &&120        ball.position.x < brick.x + brick.width &&121        ball.position.y > brick.y &&122        ball.position.y < brick.y + brick.height123}124//éç¨subjectæ¥ä½ä¸ºæ§å¶å¨ï¼å®ç°å¯¹äºä»¶æµçææ§125let controler$ = new Rx.Subject(); 126//ç»åæ¶é´æµä»¥åé¼ æ æ¶é´æ¥æ§å¶çæçä½ç½®127time$.withLatestFrom(keys$)128        .merge(controler$)129        .map(value => {130    //æ´æ°çæçä½ç½®æ°æ®131    initState.paddle.position = initState.paddle.position + value[0].deltaTime * PADDLE_SPEED * value[1];132    //æ£æµçè·ç åç碰æ133    initState.bricks.forEach((brick) => {134        //å é¤ç¢°æå°çç åï¼å¹¶ä¸ä½¿çä¸é¡¹135        if (isCollision(brick, initState.ball)) {136            let brickIndex = initState.bricks.indexOf(brick);137            initState.bricks.splice(brickIndex, 1);138            initState.score ++;139            initState.ball.direction.y = 1;140        }141        if (initState.ball.position.y < BALL_RADIUS) {142            initState.ball.direction.y = 1;143        } 144        if (initState.ball.position.x > (stage.width - BALL_RADIUS)) {145            initState.ball.direction.x = -1146        }147        if (initState.ball.position.x < BALL_RADIUS) {148            initState.ball.direction.x = 1149        }150        if ((initState.ball.position.y > (stage.height - PADDLE_HEIGHT - BALL_RADIUS))) {151            if ((initState.ball.position.x > initState.paddle.position - PADDLE_WIDTH / 2) && (initState.ball.position.x < initState.paddle.position + PADDLE_WIDTH / 2)) {152                initState.ball.direction.y = -1153            }154            else {155                if (initState.ball.position.y >= stage.height - BALL_RADIUS) {156                    console.log(initState.ball.position.x, initState.paddle.position);157                    controler$.error("faild")158                }159            }160        }161        if(initState.paddle.position < PADDLE_WIDTH / 2) {162            initState.paddle.position = PADDLE_WIDTH / 2;163        }164        if(initState.paddle.position > (stage.width - PADDLE_WIDTH / 2)) {165            initState.paddle.position = stage.width - PADDLE_WIDTH / 2;166        }167    })168    //æ´æ°æ±çä½ç½®æ°æ®169    initState.ball.position.x = initState.ball.position.x + value[0].deltaTime * BALL_SPEED * initState.ball.direction.x;170    initState.ball.position.y = initState.ball.position.y + value[0].deltaTime * BALL_SPEED * initState.ball.direction.y;171    console.log(initState);172}).subscribe(() => {173    updateView(initState);174});175function updateView(state) {176    context.clearRect(0, 0, stage.width, stage.height);177    drawPaddle(state.paddle.position);178    drawBall(state.ball);179    drawDricks(state.bricks);180    drawScore(state.score);181}...storeList.js
Source:storeList.js  
1import DataChunk from "~/stores/dataChunk";2import SearchStore from "~/stores/searchStore";3import PrimaryModalStore from "~/stores/views/primaryModalStore";4const StoreList = [5	{6		name: "loaderProgress",7		options: {8			initState: { percentage: 0, err: null }9		}10	},11	{12		name: "dataChunk",13		store: DataChunk14	},15	{16		name: "goods",17		options: {18			initState: {}19		}20	},21	{22		name: "sizes",23		options: {24			initState: {}25		}26	},27	{28		name: "shops",29		options: {30			initState: {}31		}32	},33	{34		name: "weather",35		options: {36			initState: {}37		}38	},39	{40		name: "lr",41		options: {42			initState: {}43		}44	},45	{46		name: "sellers",47		options: {48			initState: {}49		}50	},51	{52		name: "dateTime",53		options: {54			initState: {55				time: null,56				dayOfWeek: null,57				date: null58			}59		}60	},61	{62		name: "infoBlock",63		options: {64			initState: { slide: 0 }65		}66	},67	{68		name: "screenSaverSlider",69		options: {70			initState: { current: 1 }71		}72	},73	{74		name: "availableFilters",75		options: {76			initState: {}77		}78	},79	{80		name: "productList",81		options: {82			initState: []83		}84	},85	{86		name: "productListSize",87		options: {88			initState: { size: 0 }89		}90	},91	{92		name: "selectedFilters",93		options: {94			initState: {}95		}96	},97	{98		name: "catalogEvent",99		options: {100			initState: { type: null, value: null }101		}102	},103	{104		name: "search",105		store: SearchStore106	},107	{108		name: "searchResult",109		options: {110			initState: { result: [] }111		}112	},113	{114		name: "primaryModal",115		store: PrimaryModalStore116	},117	{118		name: "previewSliderView",119		options: {120			initState: { slide: 1 }121		}122	},123	{124		name: "orderCities",125		options: {126			initState: { list: [] }127		}128	},129	{130		name: "orderInputFocus",131		options: {132			initState: { focus: "phone" }133		}134	},135	{136		name: "orderInputButton",137		options: {138			initState: { value: null }139		}140	},141	{142		name: "orderPhone",143		options: {144			initState: { number: "" }145		}146	},147	{148		name: "orderPhoneParsed",149		options: {150			initState: { number: "+38 (0__) ___-__-__" }151		}152	},153	{154		name: "orderSeller",155		options: {156			initState: { number: "" }157		}158	},159	{160		name: "sellerName",161		options: {162			initState: { name: null }163		}164	},165	{166		name: "orderSend",167		options: {168			initState: { status: null, answer: null, error: null }169		}170	},171	{172		name: "mainViewGrid",173		options: {174			initState: { grid: 9 }175		}176	},177	{178		name: "productSort",179		options: {180			initState: { sort: "recom", open: false }181		}182	},183	{184		name: "mainModal",185		options: {186			initState: { open: false, currentCategory: "VID_TOVARA_UA" }187		}188	},189	{190		name: "mainViewed",191		options: {192			initState: { cnt: 0 }193		}194	},195	{196		name: "viewport",197		options: {198			initState: { viewport: "/" }199		}200	},201	{202		name: "error",203		options: {204			initState: {205				type: null,206				code: null,207				class: null,208				method: null,209				dependencies: null210			}211		}212	},213	{214		name: "productCardType",215		options: {216			initState: {217				type: null218			}219		}220	},221	{222		name: "productCardState",223		options: {224			initState: {225				open: false,226				key: null,227				item: null,228				spec: false229			}230		}231	},232	{233		name: "restsData",234		options: {235			initState: {236				origin: null,237				parsed: null,238				err: null239			}240		}241	},242	{243		name: "restsTab",244		options: {245			initState: {246				tab: "store"247			}248		}249	},250	{251		name: "availableOrder",252		options: {253			initState: {254				reserve: false,255				delivery: false,256				pickUp: false257			}258		}259	},260	{261		name: "orderSize",262		options: {263			initState: {264				size: null265			}266		}267	},268	{269		name: "orderSizeTarget",270		options: {271			initState: {272				rests: null273			}274		}275	},276	{277		name: "orderStep",278		options: {279			initState: { step: 0 }280		}281	},282	{283		name: "orderType",284		options: {285			initState: { type: null }286		}287	},288	{289		name: "orderDeliveryType",290		options: {291			initState: { type: null }292		}293	},294	{295		name: "orderCity",296		options: {297			initState: { city: null }298		}299	},300	{301		name: "orderStore",302		options: {303			initState: { store: null }304		}305	},306	{307		name: "orderCode",308		options: {309			initState: { code: null }310		}311	}312];...create-store.js
Source:create-store.js  
1import { createStore, applyMiddleware, compose } from 'redux'2import createSagaMiddleware from 'redux-saga'3import authMiddleware from './middlewares/auth-middleware'4import reducer from 'reducers/root'5import { canUseDOM, KEY_REFRESH_TOKEN } from './utils/fetch'6import merge from 'lodash.merge'7import { END } from 'redux-saga'8import rootSaga from 'sagas'9import { fromJS } from 'immutable'10import { routerMiddleware } from 'react-router-redux'11const middlewares = [authMiddleware]12// export const sagaMiddleware = createSagaMiddleware()13/**14 * function to create a redux store15 * history   {object}               from some createHistroy()16 * initState {object}               initial state passed to this store17 * @return   {object}               return a redux store18 */19export default function(history, initState) {20  if (canUseDOM && initState) {21    // @todo: pass refresh token22    // initState = merge({}, initState, { auth: { refreshToken: localStorage.getItem(KEY_REFRESH_TOKEN) } })23    // need to serialize24    initState.app && (initState.app = fromJS(initState.app))25    initState.login && (initState.login = fromJS(initState.login))26    initState.auth && (initState.auth = fromJS(initState.auth))27    initState.simulate && (initState.simulate = fromJS(initState.simulate))28    initState.locale && (initState.locale = fromJS(initState.locale))29    initState.patient && (initState.patient = fromJS(initState.patient))30    fromJSNested(initState.overview)31    initState.record && (initState.record = fromJS(initState.record))32    fromJSNested(initState.admin)33    initState.table && (initState.table = fromJS(initState.table))34    initState.effective && (initState.effective = fromJS(initState.effective))35    initState.globalConfigs && (initState.globalConfigs = fromJS(initState.globalConfigs))36  }37  const sagaMiddleware = createSagaMiddleware()38  const finalCreateStore = compose(39    applyMiddleware(...middlewares, routerMiddleware(history), sagaMiddleware),40    __DEV__ && typeof window === 'object' && typeof window.devToolsExtension !== 'undefined' ? window.devToolsExtension() : f => f41  )(createStore)42  const store = finalCreateStore(reducer, initState)43  store.runSaga = sagaMiddleware.run44  store.closeSaga = () => store.dispatch(END)45  // sagaMiddleware.run(updateTimeTask)46  if (canUseDOM && __DEV__ && module.hot) {47    // Enable Webpack hot module replacement for reducers48    module.hot.accept('./reducers/root', () => {49      const nextRootReducer = require('reducers/root').default50      store.replaceReducer(nextRootReducer)51    })52  }53  return store54}55function fromJSPatient(patientState) {56  patientState.profile && (patientState.profile = fromJS(patientState.profile))57  if (patientState.infos) {58    const keys = Object.keys(patientState.infos)59    keys.forEach((key) => {60      patientState.infos[key] = fromJS(patientState.infos[key])61    })62  }63}64function fromJSNested(nestedState) {65  const keys = Object.keys(nestedState)66  keys.forEach((key) => {67    nestedState[key] = fromJS(nestedState[key])68  })...action.js
Source:action.js  
1const Zero = () => ({type : "ZERO"})2const One = () => ({type : "ONE"})3const Two = () => ({type : "TWO"})4const Three = () => ({type : "THREE"})5const Four = () => ({type : "FOUR"})6const Five = () => ({type : "FIVE"})7const Six = () => ({type : "SIX"})8const Seven = () => ({type : "SEVEN"})9const Eight = () => ({type : "EIGHT"})10const Nine = () => ({type : "NINE"})11const Plus = () => ({type : "PLUS"})12const Minus = () => ({type : "MINUS"})13const Multiply = () => ({type : "MULTIPLY"})14const Divide = () => ({type : "DIVIDE"})15const Equals = () => ({type : "EQUALS"})16const Clear = () => ({type : "CLEAR"})17const initstate = [];18     19const Action = (state = initstate, action) => {20    if(action.type === "ZERO"){21        console.log(action.type)22        return (initstate.push(0),[...initstate])23    }24    if(action.type === "ONE"){25        console.log(action.type)26        return  (initstate.push(1),[...initstate])27    }28    if(action.type === "TWO") {29        console.log(action.type)30        return  (initstate.push(2),[...initstate])31    }32    if(action.type === "THREE") {33        console.log(action.type)34        return  (initstate.push(3),[...initstate])35    }36    if(action.type === "FOUR") {37        console.log(action.type)38        return  (initstate.push(4),[...initstate])39    }40    if(action.type === "FIVE") {41        console.log(action.type)42        return  (initstate.push(5),[...initstate])43    }44    if(action.type === "SIX") {45        console.log(action.type)46        return  (initstate.push(6),[...initstate])47    }48    if(action.type === "SEVEN") {49        console.log(action.type)50        return  (initstate.push(7),[...initstate])51    }52    if(action.type === "EIGHT") {53        console.log(action.type)54        return  (initstate.push(8),[...initstate])55    }56    if(action.type === "NINE") {57        console.log(action.type)58        return  (initstate.push(9),[...initstate])59    }60    if(action.type === "PLUS") {61        return  (initstate.push("+"),[...initstate])62    }63    if(action.type === "MINUS") {64        return  (initstate.push("-"),[...initstate])65    }66    if(action.type === "MULTIPLY") {67        return  (initstate.push("*"),[...initstate])68    }69    if(action.type === "DIVIDE") {70        return (initstate.push("/"),[...initstate])71    }72    if(action.type === "EQUALS") {73        return (initstate.push("="),[...initstate]) 74    }75    if(action.type === "CLEAR") {76        return state = 077    }78    return state;79}80export default Action;...Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch({ headless: false });4  const context = await browser.newContext();5  const page = await context.newPage();6  await page.close();7  await context.close();8  await browser.close();9})();10const { chromium } = require('playwright');11(async () => {12  const browser = await chromium.launch({ headless: false });13  const context = await browser.newContext();14  const page = await context.newPage();15  await page.close();16  await context.close();17  await browser.close();18})();19const { chromium } = require('playwright');20(async () => {21  const browser = await chromium.launch({ headless: false });22  const context = await browser.newContext();23  const page = await context.newPage();24  await page.close();25  await context.close();26  await browser.close();27})();28const { chromium } = require('playwright');29(async () => {30  const browser = await chromium.launch({ headless: false });31  const context = await browser.newContext();32  const page = await context.newPage();33  await page.close();34  await context.close();35  await browser.close();36})();37const { chromium } = require('playwright');38(async () => {39  const browser = await chromium.launch({ headless: false });40  const context = await browser.newContext();41  const page = await context.newPage();42  await page.close();43  await context.close();44  await browser.close();45})();46const { chromium } = require('playwright');47(async () => {48  const browser = await chromium.launch({ headless: false });49  const context = await browser.newContext();50  const page = await context.newPage();51  await page.close();52  await context.close();53  await browser.close();54})();Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch();4  const context = await browser.newContext({ storageState: 'state.json' });5  const page = await context.newPage();6  await page.screenshot({ path: `example.png` });7  await browser.close();8})();9{10    {11    }12    {13        {14        }15    }16}17const { chromium } = require('playwright');18(async () => {19  const browser = await chromium.launch();20  const context = await browser.newContext({ storageState: 'state.json' });21  const page = await context.newPage();22  await page.screenshot({ path: `example.png` });23  await browser.close();24})();25{26    {27    }28    {29        {30        }31    }32}33const { chromium } = require('playwright');34(async () => {35  const browser = await chromium.launch();36  const context = await browser.newContext({ storageState: 'state.json' });37  const page = await context.newPage();Using AI Code Generation
1const { initState } = require('playwright/lib/server/playwright.js');2(async () => {3  const browser = await initState();4  const page = await browser.newPage();5  await page.screenshot({ path: 'example.png' });6  await browser.close();7})();8const { browserType } = require('playwright/lib/server/playwright.js');9(async () => {10  const browser = await browserType('chromium').launch();11  const page = await browser.newPage();12  await page.screenshot({ path: 'example.png' });13  await browser.close();14})();15const { launchServer } = require('playwright/lib/server/playwright.js');16(async () => {17  const server = await launchServer({ port: 3000 });18  const browser = await server.browserType('chromium').launch();19  const page = await browser.newPage();20  await page.screenshot({ path: 'example.png' });21  await browser.close();22  await server.close();23})();24const { launchPersistentServer } = require('playwright/lib/server/playwright.js');25(async () => {26  const server = await launchPersistentServer({27  });28  const browser = await server.browserType('chromium').launch();29  const page = await browser.newPage();30  await page.screenshot({ path: 'example.png' });31  await browser.close();32  await server.close();33})();34const { connectOverCDP } = require('playwright/lib/server/playwright.js');35(async () => {36  const page = await browser.newPage();37  await page.screenshot({ path: 'example.png' });38  await browser.close();39})();Using AI Code Generation
1const { initState } = require('playwright/lib/server/state');2const { chromium } = require('playwright');3(async () => {4  const state = await initState();5  const browser = await chromium.launch({ state });6  const context = await browser.newContext();7  const page = await context.newPage();8  await page.screenshot({ path: 'example.png' });9  await browser.close();10})();11const { initState } = require('playwright/lib/server/state');12const { chromium } = require('playwright');13(async () => {14  const state = await initState();15  const browser = await chromium.launch({ state });16  const context = await browser.newContext();17  const page = await context.newPage();18  await page.screenshot({ path: 'example.png' });19  await browser.close();20})();21const { initState } = require('playwright/lib/server/state');22const { chromium } = require('playwright');23(async () => {24  const state = await initState();25  const browser = await chromium.launch({ state });26  const context = await browser.newContext();27  const page = await context.newPage();28  await page.screenshot({ path: 'example.png' });29  await browser.close();30})();31const { initState } = require('playwright/lib/server/state');32const { chromium } = require('playwright');33(async () => {34  const state = await initState();35  const browser = await chromium.launch({ state });36  const context = await browser.newContext();37  const page = await context.newPage();38  await page.screenshot({ path: 'example.png' });39  await browser.close();40})();41const { initState } = require('playwright/lib/server/state');42const { chromium } = require('playwright');43(async () => {44  const state = await initState();45  const browser = await chromium.launch({ state });46  const context = await browser.newContext();Using AI Code Generation
1const playwright = require('playwright');2const { initState } = require('playwright/lib/server/initState');3const { chromium } = require('playwright');4(async () => {5  const state = await initState();6  const browser = await chromium.connect({7  });8  const page = await browser.newPage();9  await page.screenshot({ path: 'example.png' });10  await browser.close();11})();12const playwright = require('playwright');13const { initState } = require('playwright/lib/server/initState');14const { chromium } = require('playwright');15(async () => {16  const state = await initState();17  const browser = await chromium.connect({18  });19  const page = await browser.newPage();20  await page.screenshot({ path: 'example.png' });21  await browser.close();22})();23const { chromium } = require('playwright');24const browser = await chromium.launch();25const browserWSEndpoint = browser.wsEndpoint();26await browser.close();27const { chromium } = require('playwright');Using AI Code Generation
1import { initState } from 'playwright-core/lib/server/browserContext';2import { Page } from 'playwright-core/lib/server/page';3import { Frame } from 'playwright-core/lib/server/frames';4const page = new Page();5const frame = new Frame();6initState(page, frame);7import { initState } from 'playwright/lib/server/browserContext';8import { Page } from 'playwright/lib/server/page';9import { Frame } from 'playwright/lib/server/frames';10const page = new Page();11const frame = new Frame();12initState(page, frame);Using AI Code Generation
1const { InternalState } = require('playwright/lib/server/browserContext');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const state = await InternalState.getOrCreate(page);8  await state.initState({9    viewportSize: { width: 1024, height: 768 },10    userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'11  });12  await page.screenshot({ path: `example.png` });13  await browser.close();14})();Using AI Code Generation
1const { Playwright } = require('playwright');2const { initPlaywrightState } = Playwright;3const { BrowserContext } = require('playwright/lib/server/browserContext');4const { Page } = require('playwright/lib/server/page');5const { Frame } = require('playwright/lib/server/frame');6const { Worker } = require('playwright/lib/server/worker');7const { WebSocketTransport } = require('playwright/lib/server/webSocketTransport');8const { Browser } = require('playwright/lib/server/browser');9const { BrowserServer } = require('playwright/lib/server/browserServer');10const { Android } = require('playwright/lib/server/android');11const { AndroidDevice } = require('playwright/lib/server/androidDevice');12const { helper } = require('playwright/lib/server/helper');13const { debugLogger } = require('playwright/lib/server/logger');14const { Connection } = require('playwright/lib/server/connection');15const { TimeoutSettings } = require('playwright/lib/server/timeoutSettings');16const { Events } = require('playwright/lib/server/events');17const { BrowserType } = require('playwright/lib/server/browserType');18const { Electron } = require('playwright/lib/server/electron');19const { ElectronApplication } = require('playwright/lib/server/electronApplication');20const { ElectronProcess } = require('playwright/lib/server/electronProcess');21const { FFBrowser } = require('playwright/lib/server/firefox/ffBrowser');22const { FFBrowserContext } = require('playwright/lib/server/firefox/ffBrowserContext');23const { FFConnection } = require('playwright/lib/server/firefox/ffConnection');24const { FFPage } = require('playwright/lib/server/firefox/ffPage');25const { FFSession } = require('playwright/lib/server/firefox/ffSession');26const { FFTracing } = require('playwright/lib/server/firefox/ffTracing');27const { FFVideo } = require('playwright/lib/server/firefox/ffVideo');28const { ChromiumBrowser } = require('playwright/lib/server/chromium/chromiumBrowser');29const { ChromiumBrowserContext } = require('playwright/lib/server/chromium/chromiumBrowserContext');30const { ChromiumConnection } = require('playwright/lib/server/chromium/chromiumConnection');31const { ChromiumDownloader } = require('playwright/lib/server/chromium/chromiumDownloader');32const { ChromiumPage } = require('playwright/libLambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
