All Versions
167
Latest Version
Avg Release Cycle
24 days
Latest Release
528 days ago

Changelog History
Page 5

  • v1.9.3 Changes

    September 17, 2020

    v1.9.3 (2020-9-17)

    πŸ› Bug Fixes

    • πŸ›  Fixed the RequestMock type definitions to accept any type for the headers (#5529)
    • βœ… TestCafe no longer displays a warning about missing await when you save a snapshot property to a variable but do not use it later in the test (#5534)
    • βœ… Consecutive document.getElementsByTagName('body') calls now produce the correct results even if the first call was made before a document body was parsed entirely (#5322)
  • v1.9.3-rc.1 Changes

    September 16, 2020

    What’s Changed

  • v1.9.2 Changes

    September 03, 2020

    v1.9.2 (2020-9-3)

    πŸ› Bug Fixes

    • βœ… TestCafe's TypeScript definitions now allow null as an expected value in assertions (PR #5456)
    • βž• Added warnings displayed when a user tries to get a snapshot property value and misses await (PR #5383, part of #5087)
    • βœ… Tested app's standard output and error streams are forwarded to the TestCafe's debug log now (#5423)
    • βœ… Tested apps no longer cause buffer overflow errors when they output too much data to standard streams (#2857)
    • βœ… TestCafe now correctly waits for elements on tested pages that mock date functions (#5447)
    • βœ… HTTP header overflow errors now occur less frequently due to the increased maximum header size. Enhanced the error message with troubleshooting instructions (testcafe-hammerhead/#2356)
    • βž• Added a descriptive message with troubleshooting instructions for the error thrown when the tested web server sends malformed or non-standard headers (testcafe-hammerhead/#2188)
    • πŸ›  Fixed a CSRF error on tested pages that use the Request class (testcafe-hammerhead/#2140)
    • πŸ’… t.hover now works correctly for tested pages built with the Styled Components framework (#3830)
    • πŸ›  Fixed script processing that could cause unhandled exceptions on some pages (testcafe-hammerhead/#2417)
    • πŸ›  Fixed the 'TypeError: r is not a function' uncaught exception on some pages with an <iframe> (testcafe-hammerhead/#2392)
  • v1.9.2-rc.2 Changes

    September 02, 2020

    What’s Changed

  • v1.9.2-rc.1 Changes

    September 01, 2020

    What’s Changed

  • v1.9.1 Changes

    August 12, 2020

    What’s Changed

  • v1.9.1-rc.1 Changes

    August 11, 2020

    What’s Changed

    • βž• Added a check to error formatter. Bump version (v1.9.1-rc.1). Bump hammerhead (v17.1.13) (#5409) @Ogurecher
    • βœ… [docs] Describe TestCafe current limitations (#5357) @DIRECTcut
    • βœ… [docs] Add a changelog for v1.9.0 (#5399) @VasilyStrelyaev
    • βœ… [docs] Address remarks re 1.9.0 announcement (#5402) @VasilyStrelyaev
    • βœ… attempt to test typescript definitions for testController (#5384) @AlexKamaev
    • βœ… Rewrite assertion.js to typescript (#5387) @miherlosev
    • πŸ”„ Change multi-window tests structure (#5390) @miherlosev
    • πŸ“š [docs] Update the documentation to include a description of the framework's window management capabilities (#5363) @titerman
  • v1.9.0 Changes

    August 06, 2020

    ✨ Enhancements

    πŸ‘ 🌟 Multi Window Support (Beta)

    🏁 TestCafe can now automate user actions in multiple windows. You can switch between open windows during the test. Make edits in one window and check that the other window's content changes dynamically to reflect these modifications.

    🏁 [Testing in multiple windows](docs/articles/images/blog/2020-07-23-multi-window.gif)

    βœ… When the main window opens a child window, TestCafe automatically switches to this new window and continues test actions there:

    import { Selector } from 'testcafe';
    
    fixture `Login page`
        .page('https://login.wrike.com/login/');
    
    const googleButton = Selector('div.login-panel-footer__login-with > button');
    
    test('Login via Google', async t => {
        await t
            .click(googleButton)
            .typeText('input[type=email]', 'This text will be entered inside the pop-up');
    });
    

    πŸ“š You can use the t.openWindow method to open a child window in test code:

    import { Selector, ClientFunction } from 'testcafe';
    
    fixture `Test page`
        .page('https://devexpress.github.io/testcafe/example/');
    
    test('Open a new window', async t => {
        await t.openWindow('http://example.com');
    
        const url = await t.eval(() => document.documentURI);
    
        await t.expect(url).eql('http://example.com');
    });
    

    πŸ“š The t.switchToWindow method enables you to switch between open windows. You can use a window descriptor or a predicate to specify the window that should be activated:

    fixture `Example page`
        .page('https://example.com');
    
    test('Switch to a specific window', async t => {
        const initialWindow = await t.getCurrentWindow();
        const popUp1        = await t.openWindow('https://devexpress.com');
        const popUp2        = await t.openWindow('https://github.com');
    
        await t.switchToWindow(initialWindow);
    
        const url = t.eval(() => document.documentURI);
    
        await t.expect(url).eql('https://example.com/');
    
        await t
            .switchToWindow(w => w.url.host === 'github.com')
            .expect(url).eql('https://github.com');
    });
    

    πŸ“š The t.switchToParentWindow and t.switchToPreviousWindow methods allow you to switch back to the parent window or the previously active window.

    πŸ“š The t.closeWindow method closes the current window when called without arguments, or the specified window if you pass a descriptor or predicate:

    fixture `Example page`
        .page('http://www.example.com');
    
    test('Close the current window', async t => {
        const window1 = await t.openWindow('http://devexpress.com');
    
        await t.closeWindow();
    
        const url = await t.eval(() => document.documentURI);
    
        await t.expect(url).eql('http://www.example.com/');
    });
    
    test('Close a specific window', async t => {
        const window1 = await t.openWindow('http://devexpress.com');
    
        await t.closeWindow(window1);
    });
    

    Detailed Diffs in Failed Assertions

    βœ… Test run reports now show the differences between an assertion's actual and expected values:

    πŸ“„ [A report showing differences between asserted values](docs/articles/images/blog/2020-07-23-rich-diffs.png)

    βœ… TestCafe can display difference between values, arrays, objects, and even functions.

    πŸ› Bug Fixes

    • 🐧 TestCafe now throws a descriptive error when it attempts to start the browser UI on Linux without the X11 server (4461)
    • 🐧 Exception no longer thrown when you use remote browsers on Linux without X11 or run Windows browsers from WSL2 (#4742)
    • πŸ›  Fixed a syntax error on pages whose code destructures empty function parameters (testcafe-hammerhead/#2391)
    • πŸ›  Fixed a bug when page titles were displayed incorrectly (testcafe-hammerhead/#2374)
  • v1.9.0-rc.2 Changes

    August 05, 2020

    What’s Changed

  • v1.9.0-rc.1 Changes

    August 03, 2020

    What’s Changed