{"__v":0,"_id":"57c848944434350e005099c0","category":{"__v":60,"_id":"569002f19ebef90d0087289d","pages":["56900352769f210d00132595","5690047121fcf0190071d943","569004924719c119002ce654","569004ceb700ce0d002f4b94","569023e518c3920d00be8b37","569023f748df220d004ca215","5690240af7eb9a0d00f4465d","5690241b48df220d004ca217","5690243e48df220d004ca219","56902453741e9c0d00af2fb5","56902463efcc380d0043a5a1","5690247b18c3920d00be8b39","56902492f7eb9a0d00f4465f","569024a16c49d70d00f18075","569024b2efcc380d0043a5a3","569024cc48df220d004ca21b","569024ea18c3920d00be8b3b","5690258618c3920d00be8b3f","5690259bf7eb9a0d00f44662","569025b06c49d70d00f18077","569029b418c3920d00be8b43","569029d4f7eb9a0d00f44667","569029e8e056c80d00fdec58","569029fb48df220d004ca221","56902a1c18c3920d00be8b46","56902a45f7eb9a0d00f44669","56902a6be056c80d00fdec5a","56902a78f7eb9a0d00f4466b","56902a8848df220d004ca224","56902aa018c3920d00be8b4b","56902ace6c49d70d00f18085","56902ae0741e9c0d00af2fc6","56902aee48df220d004ca226","56902af8f7eb9a0d00f44674","56902b26efcc380d0043a5b1","56902b8148df220d004ca22a","56902ba918c3920d00be8b55","56902bb96c49d70d00f1808b","56902bc818c3920d00be8b57","56902bd518c3920d00be8b59","56902be218c3920d00be8b5b","56902bf66c49d70d00f1808e","56902c05e056c80d00fdec5d","56902c196c49d70d00f18090","56902c2648df220d004ca22d","56902c34f7eb9a0d00f44678","56902c5518c3920d00be8b5d","56902c62741e9c0d00af2fcc","56902cde48df220d004ca230","56902cea741e9c0d00af2fcf","56902d0ae056c80d00fdec60","56902d20efcc380d0043a5b4","56902d3448df220d004ca232","5696c3fbf9203821005fe2fb","5696c3fb9e2d000d00947ab0","5696c3fbf9203821005fe2fa","5697efee8d2a770d00d2fd17","569802611c4dc823005426c7","56a65c82b3ffe00d00156eaf","56f01f88332da41700f24b74"],"project":"568fde81b700ce0d002f4b43","version":"568fde82b700ce0d002f4b46","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-01-08T18:41:53.562Z","from_sync":false,"order":1,"slug":"commands","title":"Commands"},"parentDoc":null,"project":"568fde81b700ce0d002f4b43","user":"568fffce769f210d0013258f","version":{"__v":23,"_id":"568fde82b700ce0d002f4b46","project":"568fde81b700ce0d002f4b43","createdAt":"2016-01-08T16:06:26.373Z","releaseDate":"2016-01-08T16:06:26.373Z","categories":["568fde82b700ce0d002f4b47","568ff0e504440a1700e4cbbd","569002f19ebef90d0087289d","569004f4769f210d00132599","5690056d9ebef90d008728a0","569005d394c5030d0028813a","5690067804440a1700e4cbe2","569137eb3c4f510d00ec9b92","56913815e56a790d008dbfe3","569138ba3c4f510d00ec9b93","5691392f3c4f510d00ec9b94","56913bbe72f2810d007e4cb0","56933b8d6ebadc0d005b71d2","56933b8d6ebadc0d005b71d3","569564facaa32519009c41e6","5696a319b6d61f0d00acfb40","5696a319a857080d0082e8e8","5697efe43503e40d0061f4d1","5697efe48d2a770d00d2fd16","569e9597ffccd10d00a05c59","56a7a1523d33bc2100793d5c","56a7a32ecf6d771700baeee8","56b8b0f7ddeb231700e69825"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"bar","version_clean":"1.0.0","version":"1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-09-01T15:26:12.324Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"auth":"required","params":[],"url":""},"isReference":false,"order":70,"body":"Writes to a file with the specified contents. JavaScript arrays and objects are stringified and formatted into text. If the path to the file does not exist, the file and it's path will be created. If the file already exists, it will be over-written.\n\n| | |\n|--- | --- |\n| **Returns** | the contents written to the file |\n| **Timeout** | `cy.writeFile` will wait for the duration of [`defaultCommandTimeout`](https://on.cypress.io/guides/configuration#section-timeouts) for the server to write the file. |\n\n***\n\n# [cy.writeFile( *filePath*, *contents* )](#section-usage)\n\nWrites to the `filePath` with the `contents`. The `filePath` is relative to the project's root. `contents` must be a string, an array, or an object.\n\n***\n\n# [cy.writeFile( *filePath*, *contents*, *encoding* )](#section-specify-encoding)\n\nWrites to the `filePath` with the `contents` using the `encoding`. The `filePath` is relative to the project's root. `contents` must be a string, an array, or an object.\n\n***\n\n# Options\n\nPass in an options object to change the default behavior of `cy.writeFile`.\n\n**[cy.writeFile( *filePath*, *contents*, *options* )](#options-usage)**\n\n**[cy.writeFile( *filePath*, *contents*, *encoding*, *options* )](#options-usage)**\n\nOption | Default | Notes\n--- | --- | ---\n`timeout` | [`defaultCommandTimeout`](https://on.cypress.io/guides/configuration#section-timeouts) | Total time to wait for the `cy.writeFile` command to be processed\n\n***\n\n# Usage\n\n## Write some text to a `txt` file\n\n[block:code]\n{\n    \"codes\": [\n        {\n            \"code\": \"// {projectRoot}/path/to/message.txt will be created with the contents \\\"Hello World\\\"\\ncy\\n  .writeFile(\\\"path/to/message.txt\\\", \\\"Hello World\\\")\\n  .then(function (text) {\\n    expect(text).to.equal(\\\"Hello World\\\") // true\\n  })\\n\",\n            \"language\": \"javascript\"\n        }\n    ]\n}\n[/block]\n\n## Write JSON to a file\n\nJavaScript arrays and objects are stringified and formatted into text.\n\n[block:code]\n{\n    \"codes\": [\n        {\n            \"code\": \"// {projectRoot}/path/to/data.json will be created with the following:\\n// {\\n//   \\\"name\\\": \\\"Eliza\\\",\\n//   \\\"email\\\": \\\"eliza:::at:::example.com\\\"\\n// }\\n\\ncy\\n  .writeFile(\\\"path/to/data.json\\\", { name: \\\"Eliza\\\", email: \\\"[email protected]\\\" })\\n  .then(function (user) {\\n    // user will equal:\\n    // {\\n    //   name: \\\"Eliza\\\",\\n    //   email: \\\"[email protected]\\\"\\n    // }\\n    expect(user.name).to.equal(\\\"Eliza\\\")\\n  })\\n\",\n            \"language\": \"javascript\"\n        }\n    ]\n}\n[/block]\n\n## Write response data to a fixture file\n\n[block:code]\n{\n    \"codes\": [\n        {\n            \"code\": \"cy\\n  .request('https://jsonplaceholder.typicode.com/users')\\n  .then(function(response){\\n    cy.writeFile('cypress/fixtures/users.json', response.body)\\n  })\\n  // our fixture file is now generated and can be used\\n  .fixture('users')\\n  .then(function(users){\\n    expect(users[0].name).to.exist\\n  })\\n\",\n            \"language\": \"javascript\"\n        }\n    ]\n}\n[/block]\n\n## Specify encoding\n\nSpecify the encoding with the third argument.\n\n[block:code]\n{\n    \"codes\": [\n        {\n            \"code\": \"// {projectRoot}/path/to/message.txt will be created with the contents \\\"Hello World\\\"\\n// the encoding will be \\\"ascii\\\"\\ncy.writeFile(\\\"path/to/ascii.txt\\\", \\\"Hello World\\\", \\\"ascii\\\"))\\n\",\n            \"language\": \"javascript\"\n        }\n    ]\n}\n[/block]\n\nThe following encodings are supported:\n\n* `ascii`\n* `base64`\n* `binary`\n* `hex`\n* `latin1`\n* `utf8`\n* `utf-8`\n* `ucs2`\n* `ucs-2`\n* `utf16le`\n* `utf-16le`\n\n***\n\n# Command Log\n\n## Write an array to a file\n\n[block:code]\n{\n    \"codes\": [\n        {\n            \"code\": \"cy.writeFile(\\\"info.log\\\", [\\\"foo\\\", \\\"bar\\\", \\\"baz\\\"])\\n\",\n            \"language\": \"javascript\"\n        }\n    ]\n}\n[/block]\n\nThe command above will display in the command log as:\n\n<img width=\"618\" alt=\"screen shot of command log\" src=\"https://cloud.githubusercontent.com/assets/1157043/17936162/df857dda-69eb-11e6-8951-f34618a72e39.png\">\n\nWhen clicking on the `writeFile` command within the command log, the console outputs the following:\n\n<img width=\"452\" alt=\"screen shot of console output\" src=\"https://cloud.githubusercontent.com/assets/1157043/17936161/df7e6bf8-69eb-11e6-8ef2-a90113dece9b.png\">\n\n# Related\n\n- [readFile](https://on.cypress.io/api/readFile)\n- [Creating Fixtures](https://on.cypress.io/guides/creating-fixtures)","excerpt":"Write to a file with the specified contents","slug":"writefile","type":"basic","title":"writeFile"}

writeFile

Write to a file with the specified contents

Writes to a file with the specified contents. JavaScript arrays and objects are stringified and formatted into text. If the path to the file does not exist, the file and it's path will be created. If the file already exists, it will be over-written. | | | |--- | --- | | **Returns** | the contents written to the file | | **Timeout** | `cy.writeFile` will wait for the duration of [`defaultCommandTimeout`](https://on.cypress.io/guides/configuration#section-timeouts) for the server to write the file. | *** # [cy.writeFile( *filePath*, *contents* )](#section-usage) Writes to the `filePath` with the `contents`. The `filePath` is relative to the project's root. `contents` must be a string, an array, or an object. *** # [cy.writeFile( *filePath*, *contents*, *encoding* )](#section-specify-encoding) Writes to the `filePath` with the `contents` using the `encoding`. The `filePath` is relative to the project's root. `contents` must be a string, an array, or an object. *** # Options Pass in an options object to change the default behavior of `cy.writeFile`. **[cy.writeFile( *filePath*, *contents*, *options* )](#options-usage)** **[cy.writeFile( *filePath*, *contents*, *encoding*, *options* )](#options-usage)** Option | Default | Notes --- | --- | --- `timeout` | [`defaultCommandTimeout`](https://on.cypress.io/guides/configuration#section-timeouts) | Total time to wait for the `cy.writeFile` command to be processed *** # Usage ## Write some text to a `txt` file [block:code] { "codes": [ { "code": "// {projectRoot}/path/to/message.txt will be created with the contents \"Hello World\"\ncy\n .writeFile(\"path/to/message.txt\", \"Hello World\")\n .then(function (text) {\n expect(text).to.equal(\"Hello World\") // true\n })\n", "language": "javascript" } ] } [/block] ## Write JSON to a file JavaScript arrays and objects are stringified and formatted into text. [block:code] { "codes": [ { "code": "// {projectRoot}/path/to/data.json will be created with the following:\n// {\n// \"name\": \"Eliza\",\n// \"email\": \"[email protected]\"\n// }\n\ncy\n .writeFile(\"path/to/data.json\", { name: \"Eliza\", email: \"[email protected]\" })\n .then(function (user) {\n // user will equal:\n // {\n // name: \"Eliza\",\n // email: \"[email protected]\"\n // }\n expect(user.name).to.equal(\"Eliza\")\n })\n", "language": "javascript" } ] } [/block] ## Write response data to a fixture file [block:code] { "codes": [ { "code": "cy\n .request('https://jsonplaceholder.typicode.com/users')\n .then(function(response){\n cy.writeFile('cypress/fixtures/users.json', response.body)\n })\n // our fixture file is now generated and can be used\n .fixture('users')\n .then(function(users){\n expect(users[0].name).to.exist\n })\n", "language": "javascript" } ] } [/block] ## Specify encoding Specify the encoding with the third argument. [block:code] { "codes": [ { "code": "// {projectRoot}/path/to/message.txt will be created with the contents \"Hello World\"\n// the encoding will be \"ascii\"\ncy.writeFile(\"path/to/ascii.txt\", \"Hello World\", \"ascii\"))\n", "language": "javascript" } ] } [/block] The following encodings are supported: * `ascii` * `base64` * `binary` * `hex` * `latin1` * `utf8` * `utf-8` * `ucs2` * `ucs-2` * `utf16le` * `utf-16le` *** # Command Log ## Write an array to a file [block:code] { "codes": [ { "code": "cy.writeFile(\"info.log\", [\"foo\", \"bar\", \"baz\"])\n", "language": "javascript" } ] } [/block] The command above will display in the command log as: <img width="618" alt="screen shot of command log" src="https://cloud.githubusercontent.com/assets/1157043/17936162/df857dda-69eb-11e6-8951-f34618a72e39.png"> When clicking on the `writeFile` command within the command log, the console outputs the following: <img width="452" alt="screen shot of console output" src="https://cloud.githubusercontent.com/assets/1157043/17936161/df7e6bf8-69eb-11e6-8ef2-a90113dece9b.png"> # Related - [readFile](https://on.cypress.io/api/readFile) - [Creating Fixtures](https://on.cypress.io/guides/creating-fixtures)